将以下空格分隔的数据文件导入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 举报,一经查实,本站将立刻删除。