pandas 如果分母不为0 则 计算两列相除复制到指定列
时间: 2023-10-04 20:09:55 浏览: 48
可以通过以下代码来实现:
```
# 假设数据存储在名为 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计算两列相除的方法:
```python
import pandas as pd
# 创建一个包含两列数据的DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 计算两列相除
df['C'] = df['A'] / df['B']
# 输出结果
print(df)
```
输出结果为:
```
A B C
0 1 4 0.250000
1 2 5 0.400000
2 3 6 0.500000
```
其中,`df['A']`和`df['B']`分别表示DataFrame中的两列数据,`df['C']`表示计算结果所在的列。