我从一个格式非常糟糕的csv文件中提取了数据,并试图进行一些清理。现在一列中的值与另一列中的值不正确对应,我只需要移动一列中的值,使它们正确对应
我的数据大致如下:
df =
ref name address
1 1.2 name1
2 1.2 address1
3 1.3 name2
4 1.3 name2
5 1.3 address2
6 1.3 address2
7 1.4 name3
8 1.4 name3
9 1.5 name4
10 1.5 address4
这样继续下去,有时两个地址,或者三个或四个地址,大约还有一千行
理想情况下,我希望使我的数据如下所示:
df =
ref name address
1 1.2 name1 address1
3 1.3 name2 address2
4 1.3 name2 address2
5 1.4 name3
6 1.4 name3
7 1.5 name4 address4
删除空行并将地址上移以正确对应。请让我知道,如果你有任何想法如何做到这一点,它一直给我带来很多麻烦。提前谢谢
给定您可以运行的数据的确切格式:
这首先用NaN替换所有空单元格,然后一次取一列并删除所有NaN行。然后,通过在ref(现在是索引)上进行匹配,将它们合并为数据帧
如果您的数据中已经缺少NaN值,那么它只是
我们可以执行
groupby
+shift NaN:PS您可以通过Divakar检查justify
,以加快整个过程相关问题 更多 >
编程相关推荐