私が理解していないpandas DataFramesの動作が見つかりました。辞書によるパンダのDataFrame行の更新
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でないデフォルトの動作ということです:私は辞書からデータフレームを作成しようとすると、それは彼らが列であるかのようにキーを処理しますか?