python dataframe操作

要求:
四列 id,x,y,t的一个dataframe。
对每个id内部,如果两条记录t相同,则对两条记录的x,y求平均,得到一条新记录,然后插入后删除旧的记录

假设所有数据按照id小在前,相等时t小在前排列

2个回答

import pandas as pd

df = pd.read_excel(r'aa.xlsx')
print(df)

result = pd.DataFrame(df.groupby(['id', 't']).mean().reset_index())
print(result)

数据:

   id  x  y  t
0   1  1  1  1
1   2  2  2  2
2   2  3  3  3
3   3  4  4  3
4   3  5  5  3
5   3  6  6  3
6   4  7  7  4
7   5  8  8  5

结果:

   id  t  x  y
0   1  1  1  1
1   2  2  2  2
2   2  3  3  3
3   3  3  5  5
4   4  4  7  7
5   5  5  8  8

如果要调整列的顺序,展现的时候调整一下就好。

你要举出你的dataframe的数据类型, 不明白"对每个ID内部,如果两条记录t相同"是什么意思?

cjwddxlb
cjwddxlb 就是id相同,且t相同的多条记录,对其x和y作平均作为新的一行。数据类型id和t是int, x和y是double
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!