如何将不同索引长度的DataFrames与NaN组合在一起



我有两个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'])

然而,我很难找到一种方法来做到这一点。主要是因为:

  1. 我想根据一些索引进行组合,每个索引的长度不同,但列相同
  2. 每个在不同的地方都有np.nan。在这样的单元格中,我想取有值的,没有np.nan
  3. 在它们都具有给定索引位置的值的情况下,我希望基于mean进行聚合

我该如何做到这一点?

我尝试过的:

我曾想过将np.nan转换为0,然后合并并除以2(或数据帧的数量(,但由于转换为0的原因,这会导致人为的低数据点。

通过重复索引值将concatmean一起使用:

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

最新更新