在read_table中选择列标题

时间:2017-12-08 12:40:28

标签: python regex pandas

使用pandas导入数据时,我遇到了一个相当具体的问题。另一个程序生成一个输出文本文件,如:

* FRUIT         KEYWORD     L      WEIGHT                    
 "Apple"       "red"       0      1.0000003669009609   
 "Banana"      "Yellow"    0      1.0000003669009609   

我想用rad_table()读入一个pandas数据框。请注意,真实文件不是以标题开头,实际标题之前有很多行。

列用几个空格分隔,因此使用sep = r'\s+'通常很好。问题出在第一列,其中*后跟实际列名FRUIT - ,两者仅由一个空格分隔。

使用pd.read_table('example.txt', sep = r'\s+')会生成一个数据框,其中星号作为第一列标题,然后是FRUIT作为下一个等,最后是WEIGHT列填充Nan实际上,第一个标头应该是FRUIT*会被忽略以防止标头的这种转移。

如何告诉pandas忽略单个空格作为分隔符并仅考虑多个空格?或者我是否必须使用另一种方法(可能是正则表达式)来解决这个问题?

我想首先阻止阅读整个框架,提取列,删除*并使用此清除的'通过设置正确的标题再次读取数据的标题列表。一个“飞行中”' apporaoch会很好。

也许有人可以帮我这个 - 我会很开心!

0 个答案:

没有答案