2
我曾以为熊猫DataFrame基本上被表示为一个列的集合。也就是说,我认为下面的代码会产生系列的相同的列表(对于一些任意的数据帧df
)两行:迭代Pandas DataFrame与迭代其列名相同吗?
list1 = [item for item in df]
list2 = [df[col_name] for col_name in df.columns]
但很显然,他们是完全不同的;治疗df
像一个可重复的,并加强通过它是完全一样的,通过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
这是为什么?这对我来说似乎很不直观。
(需要明确的是:我不问如何在数据帧得到列的列表,或如何分步通过数据框的列。)