python - 使用 apply 和 map 添加 pandas 中两列的值

标签 python pandas

<分区>

基本上我试图添加两列数据并将其反射(reflect)在另一列上,数据在下面

data = {'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'], 
        'year': [2012, 2012, 2013, 2014, 2014], 
        'reports': [4, 24, 31, 2, 3],
        'coverage': [25, 94, 57, 62, 70]}
df = pd.DataFrame(data, index = ['Cochice', 'Pima', 'Santa Cruz', 'Maricopa', 'Yuma'])
df


        coverage    name    reports year
Cochice    25      Jason      4    2012
Pima       94      Molly     24    2012
Santa Cruz 57      Tina      31    2013
Maricopa   62      Jake      2     2014
Yuma       70       Amy      3     2014

我正在使用上面的数据框进行测试,我想添加两列 coveragereports 的数据,并将其替换为如下所示的一列

df[["coverage"]] = df[["coverage"]].apply(lambda value:add(df["coverage"], df["reports"]))

我的结果应该是

        coverage       name reports year
Cochice    25+4=29     Jason      4    2012
Pima       94+24       Molly     24    2012
Santa Cruz 57+31       Tina      31    2013
Maricopa   62+2        Jake      2     2014
Yuma       70+3        Amy       3     2014

但是它不起作用,任何人都可以让我知道上面的代码有什么问题吗?

编辑

我的添加函数

def add(one, two):
  return one + two

最佳答案

您只需要 add :

df["coverage"] = df["coverage"].add(df["reports"])
print (df)
            coverage   name  reports  year
Cochice           29  Jason        4  2012
Pima             118  Molly       24  2012
Santa Cruz        88   Tina       31  2013
Maricopa          64   Jake        2  2014
Yuma              73    Amy        3  2014

或者:

df["coverage"] = df["coverage"] + df["reports"]
print (df)
            coverage   name  reports  year
Cochice           29  Jason        4  2012
Pima             118  Molly       24  2012
Santa Cruz        88   Tina       31  2013
Maricopa          64   Jake        2  2014
Yuma              73    Amy        3  2014

您的代码需要axis=1:

def add(one, two):
  return one + two

df["coverage"] = df.apply(lambda x :add(x["coverage"], x["reports"]), axis=1)
print (df)
            coverage   name  reports  year
Cochice           29  Jason        4  2012
Pima             118  Molly       24  2012
Santa Cruz        88   Tina       31  2013
Maricopa          64   Jake        2  2014
Yuma              73    Amy        3  2014

关于python - 使用 apply 和 map 添加 pandas 中两列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41832925/

相关文章:

带有字符串的 Python Pandas Dataframe 插值

python - 选择值与特定字符 python 匹配的行

python - 使用 tensorflow 进行一维卷积的时间序列输入

python - 安装 MySQL Python(在 Windows 7 上)

python - __eq__ 在 super 对象上

python - 如果在列表中找不到 key ,如何获得默认值零?

python - 如果值出现在 Pandas 数据框的任何列中,如何打印行

python - 在多行之间过滤和应用条件

python - pandas 正则表达式提取函数的行为与 "normal"正则表达式提取不同?

python - 在 python 中使用多处理时无法使用所有处理器