[英]Read txt file in dataframe by splitting on tab and space and newline
我在将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列。 我写的是这个。 此解决方案适用于制表符和换行符,但不能使用空格。
data = [i.strip('\n').split('\t') for i in open('./training_data/order_data/order_data_2016-01-01')]
它产生这样的东西。
[['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))
能否请您推荐此代码中的更新? 它生成列表,我可以将其转换为数据帧。 但是如果您有直接生成数据帧的解决方案,那将是有帮助的。 谢谢
您可以使用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
输出:
[['97ebd0c6680f7c0535dbfdead6e51b4b', 'dd65fa250fca2833a3a8c16d2cf0457c'], ['ed180d7daf639d936f1aeae4f7fb482f', '4725c39a5e5f4c188d382da3910b3f3f'], ['3e12208dd0be281c92a6ab57d9a6fb32', '24', '2016-01-01', '13:37:23'], ['92c3ac9251cc9b5aab90b114a1e363be', 'c077e0297639edcb1df6189e8cda2c3d'], ['191a180f0a262aff3267775c4fac8972', '82cc4851f9e4faa4e54309f8bb73fd7c'], ['b05379ac3f9b7d99370d443cfd5dcc28', '2', '2016-01-01', '09:47:54']]
pd.read_table('your_file',header = None,sep ='\\ s +')此解决方案有效,因为它将遇到所有单个空格+空格(tab)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.