python csv空格分隔符_将带有空格分隔符的文本文件导入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

标签:pandas,csv,python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值