如果一个为零,则将所有列设置为零

时间:2017-03-30 02:25:22

标签: python pandas

我有一个包含4列的pandas数据框。对于某些行,所有列都具有条目> 0,但对于其他人,一些列为零。根据变量set_average的值,我想将包含零的列设置为非零列的平均值(如果set_average == True),或者我想将所有非零列设置为零(如果set_average ==错误),但仅当该行中有一个零列时。我怎样才能做到这一点?似乎我已经找到了将零列设置为非零值的平均值的情况:

df['average'] = df.sum(axis=1)
df['notzero'] = df.astype(bool).sum(axis=1)
df['average'] = df['average']/df['notzero']
if set_average == True: 
    df = df[df!=0].fillna(df['average'])

但我无法弄清楚如何做第二种情况。非常感谢你的帮助。

0 个答案:

没有答案