18

pandas データフレーム全体で計算を実行した後、別の変数の値に基づいて変数の計算をオーバーライドする (多くの場合ゼロに設定する) 必要があります。この種の操作を実行するためのより簡潔で慣用的な方法はありますか?

df['var1000'][df['type']==7] = 0
df['var1001'][df['type']==7] = 0
df['var1002'][df['type']==7] = 0
...
df['var1099'][df['type']==7] = 0

このようなことを行うパンダのような方法はありますか?

if (df['type']==7):
    df['var1000'] = 0
    df['var1001'] = 0
    df['var1002'] = 0
    ...
    df['var1099'] = 0
4

1 に答える 1

26
df.ix[df.type==7, ['var1001', 'var1002']] = 0

すべての列で実行している場合は、df.ix[df.type==7] = 0. もちろん、値を置き換えたい列のリストがある場合は、そのリストを 2 番目のスロットに渡すことができます。

columnsToReplace = ['var1001', 'var1002', ...]
df.ix[df.type==8, columnsToReplace] = 0
于 2013-06-15T22:07:10.760 に答える