4
我在熊貓數據框中發現了一個我不明白的行爲。用字典更新熊貓數據框行
df = pd.DataFrame(np.random.randint(1, 10, (3, 3)), index=['one', 'one', 'two'], columns=['col1', 'col2', 'col3'])
new_data = pd.Series({'col1': 'new', 'col2': 'new', 'col3': 'new'})
df.iloc[0] = new_data
# resulting df looks like:
# col1 col2 col3
#one new new new
#one 9 6 1
#two 8 3 7
但是,如果我嘗試添加一本字典,而不是,我得到這個:
new_data = {'col1': 'new', 'col2': 'new', 'col3': 'new'}
df.iloc[0] = new_data
#
# col1 col2 col3
#one col2 col3 col1
#one 2 1 7
#two 5 8 6
這究竟是爲什麼?在寫這個問題的過程中,我意識到,最有可能的df.loc只是從new_data中獲取密鑰,這也解釋了爲什麼這些值不符合要求。但是,這又是爲什麼呢?如果我嘗試從字典中創建一個數據幀,它處理的按鍵,好像他們是列:
pd.DataFrame([new_data])
# col1 col2 col3
#0 new new new
,這是爲什麼不df.loc默認行爲?