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

标签 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楠楠

我想知道如何才能做到这一点。 笔记: 当然,双倍的 while 或 for 就可以解决问题,只是不太优雅......

    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

谢谢。

最佳答案

您可以尝试连接两个数据帧,然后根据索引组添加

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

关于Python根据索引添加两个数据帧(已编辑),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54494282/

相关文章:

python - 在 Python 中练习使用 "if ... else"有哪些好的编程问题?

python - Pandas 的ValueError : DataFrame constructor not properly called!

python - 仅在 pandas 数据框中查找字符串并用数字替换字符串

python - 如何比较pandas大型数据帧(python3.x)中的两个字符串?

python - 从 Pandas 中的 DataFrame 中删除列的范围

Python - NLTK 分隔标点符号

python - 将行向左移动时删除特定单元格

python - 将 paho-mqtt 与 PyQt 结合使用

python - Pandas:在列中查找最大字符串值的索引

python - python pandas中的相对强度指数