DataFrame与Series的运算

本文详细介绍了在Python的数据分析库Pandas中,如何使用Series与DataFrame进行高级运算,包括加、减、乘、除等操作,并展示了如何通过add()、sub()、mul()、div()等函数实现Series与DataFrame之间的计算。通过实例,读者可以了解到不同轴向的计算方式及结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原则

Series索引值与DataFrame列名相同的项进行相加

函数计算

add()、sub()、mul()、div()

#Series中行索引与DataFrame列标签索引相加得到值
import pandas as pd
s = pd.Series([1,2,3,4])
df = pd.DataFrame({
    0:[10,20,30,40],
    1:[100,200,300,400],
    2:[1000,2000,3000,4000],
    3:[10000,20000,30000,40000]
})
print(df)
print('\n')
#Series以行为单位与DataFrame中的每行元素进行相加
print(df+s)
#     0    1     2      3
# 0  11  102  1003  10004
# 1  21  202  2003  20004
# 2  31  302  3003  30004
# 3  41  402  4003  40004

#Series以行为单位与DataFrame中的每列元素进行相加
print(df.add(s,axis=0))
#     0    1     2      3
# 0  11  101  1001  10001
# 1  22  202  2002  20002
# 2  33  303  3003  30003
# 3  44  404  4004  40004


s = pd.Series([1,2,3,4])
df = pd.DataFrame({0:[10,20,30,40]})
print(df+s)
#     0   1   2   3
# 0  11 NaN NaN NaN
# 1  21 NaN NaN NaN
# 2  31 NaN NaN NaN
# 3  41 NaN NaN NaN

#Series以行为单位进行计算
s = pd.Series([1,2,3,4])
df = pd.DataFrame({
    'b':[10,20,30,40],
    'a':[100,200,300,400],
    'c':[1000,2000,3000,4000],
    'd':[10000,20000,30000,40000]
})
print(df)
print('\n')
print(df+s)

#     a   b   c   d   0   1   2   3
# 0 NaN NaN NaN NaN NaN NaN NaN NaN
# 1 NaN NaN NaN NaN NaN NaN NaN NaN
# 2 NaN NaN NaN NaN NaN NaN NaN NaN
# 3 NaN NaN NaN NaN NaN NaN NaN NaN

 

### 实现 DataFrame 列的循环相加 对于想要实现 Pandas DataFrame 的列之间进行累加操作的需求,推荐采用矢量化的方法而非显式的 Python `for` 循环。这种方法不仅提高了代码的简洁性和可读性,还显著提升了性能效率。 下面展示了一个具体的例子,该例子创建了一个简单的 DataFrame 并实现了对其指定两列之间的逐元素求和: ```python import pandas as pd # 创建示例 DataFrame data = {'A': [1, 2, 3], 'B': [4, 5, 6]} df = pd.DataFrame(data) # 使用向量化的 add 函数来进行列间的加法运算 result_column = df['A'].add(df['B']) print(result_column) ``` 上述代码片段利用了 Pandas 提供的强大内置函数 `.add()` 来完成两个 Series 对象间对应位置数值的相加工作[^3]。 当面对更加复杂的情况——比如需要对多于两列的数据做累积求和时,则可以通过如下方式达成目标: ```python # 假设现在我们有一个更多列的 DataFrame extended_data = { 'Col_0': range(10), 'Col_1': range(10, 20), 'Col_2': range(20, 30), } multi_columns_df = pd.DataFrame(extended_data) # 计算所有选定列的总和形成新的单个 Series sum_of_selected_cols = multi_columns_df[['Col_0', 'Col_1']].sum(axis=1) print(sum_of_selected_cols) ``` 此段程序展示了如何选取特定几列并通过调用 `.sum()` 方法沿水平方向(即按行)计算它们各自的合计值,从而得到一个新的单一维度的结果序列。 为了进一步优化性能,在处理非常庞大的数据集时应当考虑使用 NumPy 数组配合 Pandas 进行高效的操作,这有助于减少内存占用的同时加快执行速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值