使用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会很好。
也许有人可以帮我这个 - 我会很开心!