pandas apply 根据一列生成两列
时间: 2023-07-12 08:34:35 浏览: 222
Pandas实现一列数据分隔为两列
可以使用 `pandas` 的 `apply()` 方法,对一列数据进行逐行处理,并根据处理结果生成新的列。例如,假设我们有一个包含姓名和性别的数据表,姓名和性别之间用逗号分隔,我们想要将其分成两列姓名和性别,并将性别转换为大写字母,可以使用以下代码:
```python
import pandas as pd
# 创建包含姓名和性别的数据表
df = pd.DataFrame({'name_gender': ['Tom,Male', 'Jerry,Female']})
# 定义函数,对每行数据进行处理
def split_and_uppercase(row):
name, gender = row['name_gender'].split(',')
return pd.Series({'name': name, 'gender': gender.upper()})
# 使用 apply() 方法对每行数据进行处理,并生成两列数据
df[['name', 'gender']] = df.apply(split_and_uppercase, axis=1)
# 打印结果
print(df)
```
输出结果为:
```
name_gender name gender
0 Tom,Male Tom MALE
1 Jerry,Female Jerry FEMALE
```
在这个例子中,我们定义了一个函数 `split_and_uppercase()`,对每行数据进行处理,并返回一个包含两个元素的 `Series` 对象,分别代表分隔后的姓名和转换后的性别。然后,我们使用 `apply()` 方法对每行数据调用这个函数,并将生成的两列数据分别赋值给 `name` 和 `gender` 列。
阅读全文