【发布时间】:2021-06-18 07:58:10
【问题描述】:
train_subset.iloc[:10, :10]
1 0 7045 17 16.0 0.0 0.0 0.0 0.0 18.0
1 0 8907 137 48.0 42.0 53.0 32.0 35.0 30.0
1 0 917 167 193.0 88.0 48.0 0.0 24.0 0.0
1 0 203 5303 2073.0 153.0 108.0 97.0 73.0 89.0
1 0 198 817 198.0 0.0 0.0 88.0 93.0 70.0
我有一个名为 train 的数据集。我在这里打印了一小部分。
有没有一种有效的方法来删除数据集中的所有零,通过向左移动来更新列?例如,我想要的输出是......
请注意,我希望这仅从第 4 列开始触发。第一列、第二列和第三列是元数据,不应更改。
train_subset.iloc[:10, :10]
1 0 7045 17 16.0 18.0
1 0 8907 137 48.0 42.0 53.0 32.0 35.0 30.0
1 0 917 167 193.0 88.0 48.0 24.0
1 0 203 5303 2073.0 153.0 108.0 97.0 73.0 89.0
1 0 198 817 198.0 88.0 93.0 70.0
基本上,您可以将每一行视为一个时间序列,我想忽略任何零。所以我只有在事件发生的时间点有读数,并且我已经删除了它们之间的所有零。
我可以弄清楚如何删除零并用 NA 或其他内容替换,但我不知道如何将每一行强制向左移动。
【问题讨论】:
-
"用 nan 替换零,然后删除所有条目为 nan 的行。然后用零替换 nan。"不过,我不想删除带有 NAN 条目的行。我只想删除 0 (NAN),然后将所有内容按列向左移动。
标签: python pandas data-cleaning