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
参数更改)。这使您能够将单元格与其左侧的单元格进行比较
来源: