Python 3.x 选择值为负数的每个特定列的行,并在python3的另一列中转换值0

Python 3.x 选择值为负数的每个特定列的行,并在python3的另一列中转换值0,python-3.x,Python 3.x,我有下面的数据框 date B C D E 2019-07-01 00:00 0.400157 0.978738 2.240893 1.867558 2019-07-01 00:10 -0.950088 0.151357 -0.103219 0.410599 2019-07-01 00:20 1.454274 0.761038 0.121675 0.443863 2019-07-01 00

我有下面的数据框

date                  B         C         D         E
2019-07-01 00:00   0.400157  0.978738  2.240893  1.867558
2019-07-01 00:10   -0.950088 0.151357 -0.103219  0.410599
2019-07-01 00:20   1.454274  0.761038  0.121675  0.443863
2019-07-01 00:30   -1.494079 0.205158  0.313068  0.854096
假设行的每个偶数列包含-ve值(可能是多个条件,例如行包含-ve值或大于10),那么我希望将奇数列值下一个转换为0

预期产量

date                  B         C         D         E
2019-07-01 00:00   0.400157  0.978738  2.240893  1.867558
2019-07-01 00:10   -0.950088     0    -0.103219     0
2019-07-01 00:20   1.454274  0.761038  0.121675  0.443863
2019-07-01 00:30   -1.494079     0     0.313068  0.854096

如果代码一行解决方案是最好的,或者我们可以为此编写函数吗?此解决方案要求将
日期列设置为索引:

df.set_index('date', inplace=True)
df[df.shift(axis=1) < 0] = 0
df.reset_index(inplace=True)
df.set\u索引('date',inplace=True)
df[df.移位(轴=1)<0]=0
df.reset_索引(原地=真)
df.shift
返回一个新的数据帧,所有列向右移动(默认行为;可以使用
periods
参数更改)。这使您能够将单元格与其左侧的单元格进行比较

来源