减去数据框中的两列

发布于 2021-01-29 19:36:10

我的df如下所示:

Index    Country    Val1  Val2 ... Val10
1        Australia  1     3    ... 5
2        Bambua     12    33   ... 56
3        Tambua     14    34   ... 58

我想从每个国家的Val1中减去Val10,所以输出如下:

Country    Val10-Val1
Australia  4
Bambua     23
Tambua     24

到目前为止,我已经:

def myDelta(row):
    data = row[['Val10', 'Val1']]
    return pd.Series({'Delta': np.subtract(data)})

def runDeltas():
    myDF = getDF() \
        .apply(myDelta, axis=1) \
        .sort_values(by=['Delta'], ascending=False)
    return myDF

runDeltas导致此错误:

ValueError: ('invalid number of arguments', u'occurred at index 9')

解决此问题的正确方法是什么?

关注者
0
被浏览
57
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    给定以下数据框:

    df = pd.DataFrame([["Australia", 1, 3, 5],
                       ["Bambua", 12, 33, 56],
                       ["Tambua", 14, 34, 58]
                      ], columns=["Country", "Val1", "Val2", "Val10"]
                     )
    

    它归结为一个简单的广播操作):

    >>> val1_minus_val10 = df["Val1"] - df["Val10"]
    >>> print(val1_minus_val10)
    0    -4
    1   -44
    2   -44
    dtype: int64
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看