新手学了几天,但忽然要处理这些数据,百度学了好多,但还是一直报错,索性来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