通过tab和space以及newlin来读取dataframe中的txt文件

2024-04-25 09:25:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我面临的问题,在读取txt文件到熊猫数据帧。我在txt文件中有这样的数据。在

97ebd0c6680f7c0535dbfdead6e51b4b    dd65fa250fca2833a3a8c16d2cf0457c
ed180d7daf639d936f1aeae4f7fb482f    4725c39a5e5f4c188d382da3910b3f3f
3e12208dd0be281c92a6ab57d9a6fb32    24  2016-01-01 13:37:23

92c3ac9251cc9b5aab90b114a1e363be    c077e0297639edcb1df6189e8cda2c3d
191a180f0a262aff3267775c4fac8972    82cc4851f9e4faa4e54309f8bb73fd7c
b05379ac3f9b7d99370d443cfd5dcc28    2   2016-01-01 09:47:54
.....

请注意,数据由制表符、换行符和空格分隔。共有8列。我写的是这个。此解决方案适用于制表符和换行符,但对空格无效。在

^{pr2}$

它会产生这样的东西。在

[['97ebd0c6680f7c0535dbfdead6e51b4b','dd65fa250fca2833a3a8c16d2cf0457c',
  'ed180d7daf639d936f1aeae4f7fb482f','4725c39a5e5f4c188d382da3910b3f3f',
  '3e12208dd0be281c92a6ab57d9a6fb32', '24', '2016-01-01 13:37:23'],
 ['92c3ac9251cc9b5aab90b114a1e363be', 'c077e0297639edcb1df6189e8cda2c3d', 
  '191a180f0a262aff3267775c4fac8972', '82cc4851f9e4faa4e54309f8bb73fd7c',
  'b05379ac3f9b7d99370d443cfd5dcc28', '2', '2016-01-01 09:47:54']

但请注意新的空格和分隔符。在

'2016-01-01 13:37:23'

我也试过这个,但没用。在

data=pd.read_fwf('./training_data/order_data/order_data_2016-01-01', sep=' ')
data = re.split(r'\t', str(data))

你能建议更新一下这个代码吗?它生成列表,我可以转换成数据帧。但如果你有直接生成数据帧的解决方案,这将是有帮助的。 谢谢你


Tags: 文件数据txtdataorder解决方案制表符pd
2条回答

在pd.read U表格('your'u file',header=None,sep='\s+') 这个解决方案的工作原理是它将遇到所有单空间+多空间(tab)。在

您可以使用re.split

import re, pandas
new_data = list(filter(None, [re.split('\s+', i.strip('\n')) for i in open('filename.txt')]))
result = pandas.DataFrame(new_data)

new_data输出:

^{pr2}$

相关问题 更多 >

    热门问题