pandas数据处理,txt提取对应数据转xlsx

新手学了几天,但忽然要处理这些数据,百度学了好多,但还是一直报错,索性来csdn求大佬帮助

原始数据:txt,一共5列,第一列是id(范围:28000-28500),第二列是年月日(一整年),第三列是日对应的时间(10分钟更新一次,一天有144个数据),第四列没用,第五列是id对应的数据。

处理完成的数据样子:xlsx文件,txt第三列对应横向的xlsx的1到144,纵列是20个id(按每个月的第一天排序下去),只需要第一个月的随机20个id的数据

处理完成的数据如下(示例):

原数据文件:https://share.weiyun.com/OFOmCzu5

链接: https://pan.baidu.com/s/1vzGAjHZ65iuxDkpJjm0w4A 提取码: 4ay1 复制这段内容后打开百度网盘手机App,操作更方便哦

pandas读取txt文件的数据,根据id随机选择20个,将10分钟更新一次的数据按列排列,然后存为Excel,是这个意思吗?在处理过程中遇到了什么问题呢?

txt提取对应数据转xlsx,你没有说包什么错误呢?预期应该是什么样子呢?

excel表格内容输出如下,程序是用Python写的,看看输出的格式与你期望的是否相符。

链接:https://pan.baidu.com/s/1Yj4nRNkHhEqVJriDI9gYdQ 
提取码:1234 
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V4的分享

下面给出一段不完整的、数据经过预处理后的代码,如果刚刚的excel是你需要的效果,可以继续私信找我要一下另一半代码。

import os
import numpy as np
import pandas as pd
dflist = []
for i in range(1, 32):
	date = '2018-01-' + str(i).zfill(2) 
	filename = date + '.txt'
	df = pd.read_csv(filename, header=None)
	df[1] = df[1].apply(lambda x: x.split(' ')[1])
	df = df.groupby(0)
	idx = 0
	xxList = []
	rows = []
	for xx, yy in df:
		xxList.append(xx)
		yy = yy.T
		rows.append(np.array(yy.iloc[3,:]))
		idx += 1
		if idx == 20:
			break
	ddf = pd.DataFrame(rows)
	ddf['id'] = xxList
	ddf['date'] = date
	ddf = ddf.T
	ddf = ddf.reindex(['date', 'id']+list(range(144)))
	ddf = ddf.T
	print(ddf)
	dflist.append(ddf)

df = pd.concat(dflist)
print(df)
df.to_excel('out.xlsx', index=None)

 

试试这样 1.读取txt, 2.在df中对日期进行分列处理,生成日期和时间两列 3.将日期列转日期格式 4.选取每个月第一天数据 5.数据透视 6.按日期分组每组选20条记录

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

你可以方便给文件发出来吗? 发出文件之后 可以写一个对应的程序给你。

你这个data.txt太大了,建议截取几天,我可以写了例子给你,或者你了解一下pandas的pivot方法

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y