【问题标题】:sum up two pandas dataframes with different indexes element by element逐个元素地总结两个具有不同索引的熊猫数据框
【发布时间】:2016-07-27 16:48:18
【问题描述】:

我有两个 pandas 数据框,比如 df1 和 df2,每个都有一定的大小,但具有不同的索引,我想逐个元素地总结这两个数据框。我为您提供了一个简单的示例以更好地理解问题:

dic1 = {'a': [3, 1, 5, 2], 'b': [3, 1, 6, 3], 'c': [6, 7, 3, 0]}
dic2 = {'c': [7, 3, 5, 9], 'd': [9, 0, 2, 5], 'e': [4, 8, 3, 7]}
df1 = pd.DataFrame(dic1)
df2 = pd.DataFrame(dic2, index = [4, 5, 6, 7])

所以 df1 将是

   a  b  c
0  3  3  6
1  1  1  7
2  5  6  3
3  2  3  0

而 df2 将是

   c  d  e
4  7  9  4
5  3  0  8
6  5  2  3
7  9  5  7

现在输入

df1 + df2

我得到的是

    a   b   c   d   e
 0 NaN NaN NaN NaN NaN
 1 NaN NaN NaN NaN NaN
 2 NaN NaN NaN NaN NaN
 3 NaN NaN NaN NaN NaN
 4 NaN NaN NaN NaN NaN
 5 NaN NaN NaN NaN NaN
 6 NaN NaN NaN NaN NaN
 7 NaN NaN NaN NaN NaN

如何让 pandas 明白我想逐个元素地总结两个数据框?

【问题讨论】:

  • 如果你不关心索引,df1.values + df2.values

标签: python numpy pandas dataframe


【解决方案1】:

更新:来自piRSquared 的更好的解决方案:

In [39]: df1 + df2.values
Out[39]:
    a   b   c
0  10  12  10
1   4   1  15
2  10   8   6
3  11   8   7

旧答案:

In [37]: df1.values + df2.values
Out[37]:
array([[10, 12, 10],
       [ 4,  1, 15],
       [10,  8,  6],
       [11,  8,  7]], dtype=int64)

In [38]: pd.DataFrame(df1.values + df2.values, columns=df1.columns)
Out[38]:
    a   b   c
0  10  12  10
1   4   1  15
2  10   8   6
3  11   8   7

【讨论】:

    猜你喜欢
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2017-11-21
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    相关资源
    最近更新 更多