我有一个文本文件表,如下所示:
A B C D
1 1 2 3 -1 3 2 123 123
2 1 2 3 -1 3 2 123 123
3 1 2 3 -1 3 2 123 123
4 1 2 3 -1 3 2 123 123
...
我想把这个表读成带有分隔符的CSV文件,但这不起作用,因为字符串的长度不同,C和D中的字符串之间的空间有时有一个空格,有时有两个空格。最重要的部分是,A和B中的所有3个数字都像表中一样分配给它们的标题。仅仅用pd.read_csv
强制一个sep= ' '
就会导致一个错误,因为我的表头比表中的新条目少。
由于列由2+空白字符分隔,因此可以使用s{2,}
作为分隔符来分隔两个或多个空白字符:
df = pd.read_csv('YOUR FILE.csv', sep='s{2,}', engine='python')
输出:
>>> df
A B C D
1 1 2 3 -1 3 2 123 123
2 1 2 3 -1 3 2 123 123
3 1 2 3 -1 3 2 123 123
4 1 2 3 -1 3 2 123 123
# Show the underlying values:
>>> df.to_numpy()
array([['1 2 3', '-1 3 2', 123, 123],
['1 2 3', '-1 3 2', 123, 123],
['1 2 3', '-1 3 2', 123, 123],
['1 2 3', '-1 3 2', 123, 123]], dtype=object)