我有两个看起来像这样的数据框:
c453 1 8268 loc.00001 . + 1 2 3 5 6
c453 1 8268 loc.00002 . + 1 1 4 5 8
c453 1 8268 loc.00003 . + 1 1 4 9 8
c453 1 8268 loc.00001 . + 2 3 3 2 6
c453 1 8268 loc.00002 . + 1 1 4 5 4
c453 1 8268 loc.00003 . + 1 1 4 9 8
我希望对这两个文件进行平均以提供以下输出:
c453 1 8268 loc.00001 . + 1.5 2.5 3 3.5 6
c453 1 8268 loc.00002 . + 1 1 4 5 6
c453 1 8268 loc.00003 . + 1 1 4 9 8
我想在熊猫中这样做,因为我不熟悉使用熊猫。连接我可以做的两个文件,但从那里停留。任何帮助都会有用。
答案 0 :(得分:1)
我认为需要concat
使用汇总mean
,如果前4列,如果重复df1
或df2
中前4列中的行,则需要:
df = pd.concat([df1, df2]).groupby(df.columns.tolist()[:4]).mean()
a = df1.set_index(df.columns.tolist()[:4])
b = df1.set_index(df.columns.tolist()[:4])
c = a.add(b).div(2).reset_index()
答案 1 :(得分:1)
不要连接,这只会让事情变得混乱。两个值的平均值是除以2的总和:
df1.set_index(['A', 'B', 'C'], inplace=True)
df2.set_index(['A', 'B', 'C'], inplace=True)
avg = (df1[['D', 'E']] + df2[['D', 'E']]) / 2
假设“关键”列是A / B / C,数据列是D / E.