pandas 根据多列计算生成多列
时间: 2023-07-12 07:06:22 浏览: 97
pandas DataFrame 根据多列的值做判断,生成新的列值实例
5星 · 资源好评率100%
可以使用 pandas 的 apply 函数来实现根据多列计算生成多列的需求。具体步骤如下:
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 中。
阅读全文