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
這是爲什麼?這對我來說似乎很不直觀。
(需要明確的是:我不問如何在數據幀得到列的列表,或如何分步通過數據框的列。)