我有两个从CSV文件加载的熊猫数据框。每列都有两列,列A是ID,并且在两个CSV中的值和顺序相同。B列是数值。
我需要创建一个新的CSV,其A列与前两个相同,B列为两个初始CSV的平均值。
我正在创建两个像
df1=pd.read_csv(path).set_index('A')
df2=pd.read_csv(otherPath).set_index('A')
如果我做
newDf = (df1['B'] + df2['B'])/2
newDf.to_csv(...)
那么newDF在A列中的ID顺序错误
如果我做
df1['B'] = (df1['B'] + df2['B'])/2
df1.to_csv(...)
我在第一行收到一个错误,提示“值错误:无法从重复的轴重新索引”
看来这应该是微不足道的,我在做什么错呢?
尝试使用merge
而不是设置索引。
即,我们有以下数据框:
df1 = pd.DataFrame({"A" : [1, 2, 3, 4, 5], "B": [3, 4, 5, 6, 7]})
df2 = pd.DataFrame({"A" : [1, 2, 3, 4, 5], "B": [7, 4, 3, 10, 23]})
然后,我们将它们合并,并用两个B列的平均值创建一个新列。
together = df1.merge(df2, on='A')
together.loc[:, "mean"] = (together['B_x']+ together['B_y']) / 2
together = together[['A', 'mean']]
和在一起是:
A mean
0 1 5.0
1 2 4.0
2 3 4.0
3 4 8.0
4 5 15.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句