web-dev-qa-db-ja.com

Pandas同じ名前の複数の列

dataframeからcsvを作成しています。SOを開始したばかりでそれを取得できなかったため、ドキュメント、複数のPandasの投稿、リンクにアクセスしました。csvには、aと同じ名前の複数の列があります。

したがって、dataframeを形成した後、私がdf['a']どの値を返しますか?すべての値を返すわけではありません。

また、値の1つだけが文字列を持ち、残りはNoneになります。その列を取得するにはどうすればよいですか?

8
vks

関連するパラメータはmangle_dupe_colsです

docs から

mangle_dupe_cols : boolean, default True
    Duplicate columns will be specified as 'X.0'...'X.N', rather than 'X'...'X'

デフォルトでは、すべての'a'列には、上記で指定した'a.0'...'a.N'という名前が付けられます。

mangle_dupe_cols=Falseを使用した場合、このcsvをインポートするとエラーが発生します。

あなたはあなたのすべての列を得ることができます

df.filter(like='a')

デモンストレーション

from StringIO import StringIO
import pandas as pd

txt = """a, a, a, b, c, d
1, 2, 3, 4, 5, 6
7, 8, 9, 10, 11, 12"""

df = pd.read_csv(StringIO(txt), skipinitialspace=True)
df

enter image description here

df.filter(like='a')

enter image description here

11
piRSquared