我想阅读以下数据
name nr rep meters
Bill 0 1 135
Chill 0 2 81, 81
Billy 5 6 175, 205, 187, 174, 240, 198
Sambouka 5 7 130, 113, 117, 118, 130
Chile 0 1 120
我尝试了以下方法:
data = pd.read_csv('data.dat', sep='\s+')
但是很明显它没有工作,因为最后一列meters
有多个条目。有什么建议吗?你知道吗
请注意,我处理的数据大约有100行,因此这不是完整的数据。你知道吗
使用@Abbas answer,它可以:
data = pd.read_csv('data.dat', sep='\s{2,}', engine='python')
print data['meters'][2] # output: 175, 205, 187, 174, 240, 198
但是
print len(data['meters'][2]) # output 28 !
而输出应该是6
。你知道吗
毕竟,我想
plt.hist(data['meters'][2])
您也只能使用而不是前面带有逗号的任意数量的空格作为分隔符,使用regex负lookback:
如果您还想忽略后跟逗号的空格,请添加一个负数:
分割之后,组合值当然是一个字符串,而不是一个列表。您的示例由28个字符组成,因此输出是您所期望的。你知道吗
您可以使用列表理解将此字符串转换为整数的Python列表:
或者使用内置的
map
函数:尝试此操作,将仅考虑2个或更多空间作为分隔符:
添加以下图片以进行澄清:
这会完成的
相关问题 更多 >
编程相关推荐