使用 assign() 方法在 Pandas DataFrame 中创建一个新的列。
时间: 2024-11-20 15:56:05 浏览: 15
在 Pandas DataFrame 中,`assign()` 方法是一个非常有用的工具,它允许你根据给定的条件或表达式动态地向 DataFrame 中添加新的列。这个方法接受一个字典作为参数,其中键是新列的名称,值是对原有数据的操作,或者是对这些数据的新计算结果。
例如,假设我们有一个包含 'age' 和 'income' 列的 DataFrame,我们可以用 `assign()` 来创建一个新列 'age_group',根据年龄分组:
```python
import pandas as pd
# 假设我们有这样一个简单的 DataFrame
data = {
'name': ['Alice', 'Bob', 'Charlie', 'Dave'],
'age': [25, 30, 35, 40],
'income': [50000, 60000, 70000, 80000]
}
df = pd.DataFrame(data)
# 我们可以这样创建一个新的 'age_group' 列,比如将年龄分为 'Young' (0-30), 'Middle-aged' (31-45), 'Old' (46+):
new_column = {'age_group': lambda x: 'Young' if x < 31 else ('Middle-aged' if x < 46 else 'Old')}
df = df.assign(**new_column)
# 新的 DataFrame 就会包含原始的 'age' 和 'income' 列以及新添加的 'age_group' 列
df
```
在这个例子中,`lambda x: ...` 是一个匿名函数,它接收整个 'age' 列作为输入 x,然后根据年龄区间返回相应的 'age_group'。`**new_column` 表示将字典中的所有键值对展开成多个参数传递给 `assign()` 函数。
阅读全文