pandas apply使用多列计算生成新的列

在python数据分析中,有时需要根据多列数据生成中间结果,pandas给我们带来了很多方便,通常简短的代码可以实现一些高级功能,灵活掌握一些技巧可以事倍功半

pandas的apply方法用于对指定列的每个元素进行相同的操作,下面生成一个dataFrame用于演示:

import pandas as pd
a=range(5)
b=range(5,10)
c=range(10,15)
data=pd.DataFrame([a,b,c]).T
data.columns=["a","b","c"]
print(data)

上面的代码生成的数据如下:

   a  b   c
0  0  5  10
1  1  6  11
2  2  7  12
3  3  8  13
4  4  9  14

下面使用使用a,b两列相加生成x1列

data["x1"]=data[["a","b"]].apply(lambda x:x["a"]+x["b"],axis=1)

结果如下:

   a  b   c  x1
0  0  5  10   5
1  1  6  11   7
2  2  7  12   9
3  3  8  13  11
4  4  9  14  13

关键的参数是axis=1,指定计算的方向是行而不是列,默认是0,也就是按列进行计算 

 

 

 

 

 

  • 11
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用 pandasapply 函数来实现根据多列计算生成多列的需求。具体步骤如下: 1. 定义一个函数,该函数接收一个 Series 类型的参数,该 Series 包含了需要计算的多个的值,并返回一个包含需要生成的多个的值的 Series。 2. 使用 apply 函数将该函数应用到需要计算的多个上,生成一个的 DataFrame。 下面是一个示例代码: ``` python import pandas as pd # 定义一个函数,该函数接收一个 Series 类型的参数,该 Series 包含了需要计算的多个的值,并返回一个包含需要生成的多个的值的 Series。 def calculate_cols(row): col1 = row['col1'] col2 = row['col2'] col3 = col1 + col2 col4 = col1 - col2 return pd.Series({'col3': col3, 'col4': col4}) # 创建一个 DataFrame df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]}) # 使用 apply 函数将该函数应用到需要计算的多个上,生成一个的 DataFrame。 new_df = df.apply(calculate_cols, axis=1) # 将生成的多个添加到原 DataFrame 中 df[['col3', 'col4']] = new_df[['col3', 'col4']] ``` 在上面的代码中,我们首先定义了一个函数 calculate_cols,该函数接收一个包含需要计算的多个的值的 Series,然后根据需要计算生成多个的值,最后返回一个包含需要生成的多个的值的 Series。 然后,我们创建了一个 DataFrame,并使用 apply 函数将 calculate_cols 函数应用到需要计算的多个上,生成一个的 DataFrame。最后,我们将生成的多个添加到原 DataFrame 中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值