データフレームがあるとしましょう
df = pd.DataFrame({'A':[0,1],'B':[2,3]})
A B
0 0 2
1 1 3
次に、の最初の行からの入力を使用して他の関数によって生成されたシリーズdf
がありますが、既存の行と重複していませんdf
s = pd.Series ({'C':4,'D':6})
C 4
D 6
ここで、キーを新しい列にし、値をこの最初の行にのみ追加s
して追加したいと思いdf.loc[0]
ます。dfの最終結果は次のようになります。
A B C D
0 0 2 4 6
1 1 3 NaN NaN
どうすればいいですか?私が見つけた同様の質問は、1つの列に対してこれを行うか、DataFrameの最後に新しい行としてシリーズを追加するだけで、シリーズから複数の新しい列を追加して既存の行を更新することはないようです。
df.loc[0,list(['C','D'])] = [4,6]
別の回答で提案されたものを試しましたが['C','D']
、データフレームに既存の列がある場合にのみ機能します。df.assign(**s)
動作しますが、シリーズ値をすべての行に割り当てます。
join
転置あり:
df.join(pd.DataFrame(s).T)
A B C D
0 0 2 4.0 6.0
1 1 3 NaN NaN
または使用する concat
pd.concat([df, pd.DataFrame(s).T], axis=1)
A B C D
0 0 2 4.0 6.0
1 1 3 NaN NaN
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加