我是新來的python和熊貓,我不明白爲什麼有時我可以複製或操縱數據框列,有時我不能。這裏被稱爲數據幀DF:熊貓數據框條目有時可以修改,有時不是
A B C
0 hello hola bonjour
1 goodbye adios au revoir
我的第一個修改將由一行覆蓋列「C」行中的for循環(是的,有可能是更好的方式來做到這一點 - 這不是重點)其結果是如我所料:
for index,row in df.iterrows():
row['C'] = row['A']
A B C
0 hello hola hello
1 goodbye adios goodbye
我可以使用下面的for循環,並再次,我得到了我的預期增加一個新的列:
for index,row in df.iterrows():
df.ix[index,'D'] = len(row['C'])
A B C D
0 hello hola hello 5
1 goodbye adios goodbye 7
現在我嘗試幾乎完全與我第一次修改相同的東西(使用for-loop逐行覆蓋列'B'),但這次它不起作用。數據幀這次不會改變。
for index,row in df.iterrows():
row['B'] = row['A']
A B C D
0 hello hola hello 5
1 goodbye adios goodbye 7
我想知道兩件事情:
1)爲什麼相同的代碼覆蓋列有時,但不是其他時間?
2)我做錯了什麼事情導致熊貓以這種不直觀的方式行事?如果是這樣,那麼從另一列構建一列的正確方法是什麼,以避免這種事情發生?
任何好的答案或建議是非常感謝。謝謝!