pandas 多列之间运算

6 篇文章 0 订阅
3 篇文章 0 订阅

单列运算
在Pandas中,DataFrame的一列就是一个Series, 可以通过map来对一列进行操作:

df['new_col'] = df['col1'].map(lambda x: x**2)

多列运算
要对DataFrame的多个列同时进行运算,可以使用apply,例如new_col= col1 + col2:

df['new_col'] = df.apply(lambda x: x['col1'] +  x['col2'], axis=1)

分组运算
可以结合groupby与transform来方便地实现类似SQL中的聚合运算的操作:

df['new_col'] = df.groupby('col1')['col2'].transform(lambda x: (x.sum() - x) / x.count())

在transform函数中x.sum()与x.count()与SQL类似,计算的是当前group中的和与数量,还可以将transform的结果作为一个一个映射来使用, 例如:

sumcount = df.groupby('col1')['col2'].transform(lambda x: x.sum() + x.count())
 
df['col1'].map(sumcount)

对col1进行一个map,得到对应的col2的运算值

聚合函数
结合groupby与agg实现SQL中的分组聚合运算操作,需要使用相应的聚合函数:

df['col2'] = df.groupby('col1').agg({'col1':{'col1_mean': mean, 'col1_sum‘’: sum}, 'col2': {'col2_count': count}})

上述代码生成了col1_mean, col1_sum与col2_count列。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pandas 是一个强大的数据分析库,它提供了多种功能和方法来进行数据处理和分析。其中,多运算Pandas 中常用的操作之一。 在 Pandas 中,可以通过多运算来对数据集中的多进行计算,得出一个新的。多运算的实现依赖于 Pandas 的向量化操作,这使得计算效率更高。 要进行多运算,可以使用 Pandas 的方法,比如 `apply()`、`map()` 和 `applymap()` 等。其中,`apply()` 方法可以对数据集中的每个元素进行操作,而 `map()` 方法可以对每个元素的某一个特定属性进行操作。另外,`applymap()` 方法可以对整个数据集进行操作。 举个例子,假设有一个包含了两数据(A 和 B)的数据集,我们想要对这两进行加法运算并得出一个新的 C。可以通过以下方法实现: ```python import pandas as pd data = {'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]} df = pd.DataFrame(data) df['C'] = df.apply(lambda row: row['A'] + row['B'], axis=1) ``` 上述代码中,首先创建了一个包含两数据的 DataFrame `df`。然后,通过 `apply()` 方法对每一行进行操作,传入一个 lambda 函数来实现对 A 和 B 元素的加法运算。最后,将计算结果赋值给新的 C。 通过以上方法,就可以实现Pandas中的多运算。除了加法运算外,还可以进行其他的数学运算,比如减法、乘法和除法等,具体的实现方式与上述示例类似。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值