Python:按值清除凌乱的数据框

时间:2019-03-27 06:24:12

标签: python dataframe

我抓取了一个网站,并将每一页的数据连续添加到csv文件中。但是来自不同页面的数据可能不相同,由于该网页未提供其信息,因此缺少了一些数据。

CSV人:

C1    C2           C3         C4      C5      C6    C7
Annie Height: 145  Weight: 45 Car: no House:1 K-T-J X-Z
Jason Height: 189  Car:3 T Y
Ben   Height: 178  House:0 J-H X-Z

例如,我尝试从csv中清除3行,并希望按顺序设置它们。

我所期望的:

Name       Height        Weight     Car      House    K   T   J  H  X  Y  Z
Annie   Height: 145   Weight: 45   Car:no   House:1   K   T   J     X     Z
Jason   Height: 189                Car:3                  T            Y    
Ben     Height: 178                         House:0           J  H  X     Z

如果值包含“:”,则只需将它们放在右列中。如果值包含“-”,则需要将它们拆分到右列。目前,我是手动执行此操作,但是花了很长时间,只是徘徊着是否有可能以有效的方式解决它们。

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是创建一个将逐行处理的函数 :

  • 阅读该行,并通过str.split()

  • 分成一个列表
  • 使用RegEx分析每个元素。例如,^[^:]+:\s*将帮助您获取“:”之前的所有内容。

  • 将所有内容存储回正确的位置(例如使用pandas Dataframe