微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将带有空格分隔符的文本文件导入python中的csv

将以下空格分隔的数据文件导入python并将其拆分为我可以使用的数据框时遇到问题.
原始数据文件如下所示:

3300 0.272 0.302  69 153 21  4 31 104  22  80  4  3 1 0 0 0 "Andre Dawson     "
2600 0.269 0.335  58 111 17  2 18  66  39  69  0  3 1 1 0 0 "Steve Buchele    "

import pandas as pd
data = pd.read_csv('../data/ABRMdata', header=None)
split_text = []
for line in data:
    split_text.append(line)

return split_text

而我只得到[0]返回
但是我想要列表中返回的数据

[3300,0.272,0.302,69,153,21,4,31,104,22,80,4,3,1, 0,0,0,"Andre Dawson  "]
[2600,0.269,0.335,58,111,17,2,18,66,39,69, 0,3,1,1,0,0,"Steve Buchele    "]

有任何想法吗?
感谢您对高级的帮助

解决方法:

您可以使用pandas read_csv的sep参数:

import pandas as pd
from io import StringIO

data = """
3300 0.272 0.302  69 153 21  4 31 104  22  80  4  3 1 0 0 0 "Andre Dawson     "
2600 0.269 0.335  58 111 17  2 18  66  39  69  0  3 1 1 0 0 "Steve Buchele    "
"""

df = pd.read_csv(StringIO(data), sep='\s+', header=None)


In [87]: df
Out[87]: 
     0      1      2   3    4   5   6   7    8   9   10  11  12  13  14  15  \
0  3300  0.272  0.302  69  153  21   4  31  104  22  80   4   3   1   0   0   
1  2600  0.269  0.335  58  111  17   2  18   66  39  69   0   3   1   1   0   

   16                 17  
0   0  Andre Dawson       
1   0  Steve Buchele   

编辑

或者您可以将delim_whitespace设置为True:

df = pd.read_csv(StringIO(data), delim_whitespace=True, header=None)

In [440]: df
Out[440]:
     0      1      2   3    4   5   6   7    8   9   10  11  12  13  14  15  \
0  3300  0.272  0.302  69  153  21   4  31  104  22  80   4   3   1   0   0
1  2600  0.269  0.335  58  111  17   2  18   66  39  69   0   3   1   1   0

   16                 17
0   0  Andre Dawson
1   0  Steve Buchele

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐