Python根据索引添加两个数据框(已编辑)

时间:2019-02-02 15:05:13

标签: python pandas

(不知道如何在此处引入矩阵以提高可读性) 我有两个通过Panda和Python获得的数据框。

  df1 = pd.DataFrame({'Index': ['0','1','2'], 'number':[3,'dd',1], 'people':[3,'s',3]})
df1 = df1.set_index('Index')
df2 = pd.DataFrame({'Index': ['0','1','2'], 'quantity':[3,2,'hi'], 'persons':[1,5,np.nan]})

我想根据索引对列的数量求和。列的名称不同,可能包含字符串。 (实际上每个df都有50列)。我想将nan视为0。结果应为: df3 索引栏1栏2 0 6 4
1南南 2 nan

我想知道如何做到这一点。 注意: 肯定会花一会儿的时间,但不是很优雅……

    indices=0
    columna=0
    while indices<len(df.index)-1:
         while columna<numbercolumns-1:
         df3.iloc[indices,columna]=df1.iloc[indices,columna] +df2.iloc[indices,columna] 
 indices += 1
 columna += 1

谢谢。

1 个答案:

答案 0 :(得分:1)

可以尝试级联两个dataframes,再加入基于索引组上

df1.columns = df.columns
df1.people = pd.to_numeric(df1.people,errors='coerce')
pd.concat([df,df1]).groupby('Index').sum()

出局:

    number  people
Index       
A       8   5.0
B       2   2.0
C       2   5.0
F       3   3.0