(不知道如何在此处引入矩阵以提高可读性) 我有两个通过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
谢谢。
答案 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