0
キーが存在しないフレームでdf.update()を実行している場合、追加する最もクリーンな方法は何ですか?パンダの挿入または更新?
のような何か:
try:
df.update(new_data)
except:
df.insert(new_data)
キーが存在しないフレームでdf.update()を実行している場合、追加する最もクリーンな方法は何ですか?パンダの挿入または更新?
のような何か:
try:
df.update(new_data)
except:
df.insert(new_data)
それはここで何本当のユースケースは不明だが、キーは列でin
を呼び出すことにより、既に存在する場合は、まずあなたがテストすることができます。
In [61]:
df = pd.DataFrame(np.random.randn(5,3), columns=list('abc'))
df
Out[61]:
a b c
0 -0.968358 0.666118 0.758028
1 -0.805671 -0.994780 0.624423
2 0.449329 0.768457 -0.311637
3 -0.793448 1.258319 -0.924384
4 1.698867 -0.624939 -0.167027
In [62]:
'd' in df.columns
Out[62]:
False
他にあれば列が存在しない場合は、スカラー値でも配列も同じ長さであれば、追加することができます。
In [63]:
df['d'] = 10
df
Out[63]:
a b c d
0 -0.968358 0.666118 0.758028 10
1 -0.805671 -0.994780 0.624423 10
2 0.449329 0.768457 -0.311637 10
3 -0.793448 1.258319 -0.924384 10
4 1.698867 -0.624939 -0.167027 10
df.columnsの 'if key 'をテストするのはなぜですか? new_dataも同じサイズですか?つまり同じ行数ですか?もしそうであれば上書きしたり、新しいデータで新しい列を作成したりするのはなぜですか? – EdChum
[許可よりも許してほしいと思う方が簡単です](https://docs.python.org/3/glossary.html#term-eafp) –