2016-12-08 7 views
0

キーが存在しないフレームでdf.update()を実行している場合、追加する最もクリーンな方法は何ですか?パンダの挿入または更新?

のような何か:

try: 
    df.update(new_data) 
except: 
    df.insert(new_data) 
+1

df.columnsの 'if key 'をテストするのはなぜですか? new_dataも同じサイズですか?つまり同じ行数ですか?もしそうであれば上書きしたり、新しいデータで新しい列を作成したりするのはなぜですか? – EdChum

+1

[許可よりも許してほしいと思う方が簡単です](https://docs.python.org/3/glossary.html#term-eafp) –

答えて

0

それはここで何本当のユースケースは不明だが、キーは列で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 
関連する問題