我有两个DataFarmes:
df1 = pd.DataFrame([1, 2, 3], columns=['A'])
df2 = pd.DataFrame([2, np.nan, 6, 7], columns=['A'])
我想将其合并为第三个,从而实现以下结果:
df3 = pd.DataFrame([1.5, 2, 4.5, 7], columns=['A'])
然而,我很难找到一种方法来做到这一点。主要是因为:
- 我想根据一些索引进行组合,每个索引的长度不同,但列相同
- 每个在不同的地方都有
np.nan
。在这样的单元格中,我想取有值的,没有np.nan
- 在它们都具有给定索引位置的值的情况下,我希望基于
mean
进行聚合
我该如何做到这一点?
我尝试过的:
我曾想过将np.nan
转换为0,然后合并并除以2(或数据帧的数量(,但由于转换为0的原因,这会导致人为的低数据点。
通过重复索引值将concat
与mean
一起使用:
df = pd.concat([df1, df2]).mean(level=0)
#working like
#df = pd.concat([df1, df2]).groupby(level=0).mean()
print (df)
A
0 1.5
1 2.0
2 4.5
3 7.0