私はPandas DataFrameが基本的に列のコレクションとして表現されていると思っていました。それは私が(いくつかの任意DATAFRAME df
用)シリーズの同じリストを生成するコードの次の2行を考え、次のとおりです。Pandas DataFrameの反復処理は、列名の反復処理と同じですか?
list1 = [item for item in df]
list2 = [df[col_name] for col_name in df.columns]
しかし、どうやら、彼らは非常に異なっています。
df = pd.DataFrame({'col_1': [1,2,3,4,5], 'col_2':[5,6,7,8,9]})
for a, b in zip(df, df.columns):
print(a,b, type(a), type(b), a==b)
出力:
col_1 col_1 <class 'str'> <class 'str'> True
col_2 col_2 <class 'str'> <class 'str'> True
なぜこれがあるiteratableとそれを介してステッピングようdf
を処理することは、もちろん単なる列名のリストである、df.columns
をステップ実行とまったく同じですか?これは私にとって非常に直感的ではないようです。
(明確にするために:私は、データフレームの列のリストを取得する方法を求めて、あるいはどのようにデータフレームの列をステップ実行しないようにしています。)