我试图弄清楚如何在python中将数据帧中所有第二次出现的0设置为NaN。但是,这是一个转换的数据帧,因此0将出现在列之间。为了解释,我有以下数据框:
A B C D E F G
-------------------------------
0 55 34 30 29 15 0 0
1 63 59 49 32 21 16 0
2 42 24 12 5 0 0 0
3 25 6 0 0 0 0 0
4 13 0 0 0 0 0 0
因此,我不想计算列中0的出现次数,而是要计算每一行中0的出现次数(如果我没有正确地使用此词,并且如果我不应该将其称为“转置”,则表示歉意)。
因此,对于这个数据帧中的每一行,从列“A”开始,按顺序转到列“G”,我希望看到在第一次出现NaN之后出现的每一个0。因此,我想生成以下输出数据帧:
A B C D E F G
--------------------------------------------
0 55 34 30 29 15 0 NaN
1 63 59 49 32 21 16 0
2 42 24 12 5 0 NaN NaN
3 25 6 0 NaN NaN NaN NaN
4 13 0 NaN NaN NaN NaN NaN
如何将每行第一次出现0后的所有0设置为NaN?我知道简单地将所有0都设置为NaN更简单,但我想不出一种简单的方法来告诉python我想将第一个设置为NaN之后出现的所有0分开。
为了解释为什么要这样做,我尝试在数据框中绘制每一行的字母(作为x轴)。因此,将所有这些0放在一行中会导致绘图中出现不必要的点,因为我只对曲线到达0的点感兴趣。0的轨迹将生成与仅包含0的单个实例不同的形状曲线。所以我只想绘制每一行,直到到达0的初始点(衰减曲线)。