pandas 如果分母不为0 则 计算两列相除复制到指定列
时间: 2023-10-04 09:09:55 浏览: 165
可以通过以下代码来实现:
```
# 假设数据存储在名为 df 的 pandas DataFrame 中
import numpy as np
# 定义除法函数
def divide_series(numerator, denominator):
if denominator == 0:
return np.nan
else:
return numerator / denominator
# 计算两列相除并复制到指定列
df['result'] = df.apply(lambda x: divide_series(x['numerator'], x['denominator']), axis=1)
```
其中,`numerator` 和 `denominator` 为要进行相除的两列,`result` 为结果要复制到的列。通过 `apply` 函数和自定义的 `divide_series` 函数,对每一行进行相除并复制到指定列,如果分母为0,则使用 NaN 填充。
相关问题
pandas新建一列为两列的相除结果,并将分母为0的一行的相除结果显示无
可以使用Pandas的`apply()`方法结合lambda函数来实现这个需求。假设我们要将DataFrame中的`col1`列和`col2`列相除,结果存储在`col3`列中,同时如果分母为0,则将`col3`列的值设为"无"。代码如下:
```
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({'col1': [1, 2, 3, 4, 5], 'col2': [2, 0, 4, 0, 6]})
# 定义一个lambda函数,用于计算相除结果
divide = lambda x, y: "无" if y == 0 else x / y
# 将相除结果存储在新的列col3中
df['col3'] = df.apply(lambda row: divide(row['col1'], row['col2']), axis=1)
print(df)
```
输出结果为:
```
col1 col2 col3
0 1 2 0.5
1 2 0 无
2 3 4 0.75
3 4 0 无
4 5 6 0.83
```
可以看到,分母为0的行的相除结果被设置为了"无"。
pandas两列相除
你可以使用 Pandas 中的 `div()` 函数将两列相除。假设你有一个名为 `df` 的 DataFrame,其中包含两列 `a` 和 `b`,你可以使用以下代码将它们相除并将结果存储在名为 `c` 的新列中:
```python
df['c'] = df['a'].div(df['b'])
```
你也可以使用 `/` 运算符进行相除操作,例如:
```python
df['c'] = df['a'] / df['b']
```
两种方法都可以得到相同的结果。
阅读全文