1
インデックスと列で準備されたpandas DataFrameを持っています。すべての値はNaNです。 これでDataFrameの複数の行に使用できる結果が計算されました。すべてを一度に割り当てたいと思います。これはループで行うことができますが、この割り当てを一度に行うことができます。ここでシリーズを複数のPandas DataFrameの行に割り当てる
はシナリオです:
import pandas as pd
df = pd.DataFrame(index=['A', 'B', 'C'], columns=['C1', 'C2']) # original df
s = pd.Series({'C1': 1, 'C2': 'ham'}) # a computed result
index = pd.Index(['A', 'C']) # result is valid for rows 'A' and 'C'
単純なアプローチは
df.loc[index, :] = s
である。しかし、これはまったくのデータフレームを変更しません。残っているのは
C1 C2
A NaN NaN
B NaN NaN
C NaN NaN
どのようにこの割り当てを行うことができますか?
これは実際にこのケースでは機能するようです。しかし、シリーズとDataFrameの両方で列の順序が同じであることを確認する必要があると思います。すなわち、 '' df.loc [index、:] = s [df.columns] .values'' – Nras
@Nras良い点!ありがとう。それに応じて編集。 – Divakar