Dataframe 新增一列, apply 通用方法
时间: 2023-11-14 13:10:23 浏览: 156
可以使用 `apply` 方法对 DataFrame 中的某一列进行操作,并将结果存储为新的一列。下面是一个示例:
```python
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 定义一个函数
def my_func(x):
return x * 2
# 对列 A 应用函数 my_func,并将结果存储为新的一列 C
df['C'] = df['A'].apply(my_func)
# 输出结果
print(df)
```
上面的代码中,`apply` 方法接受一个函数作为参数,并将该函数应用于 DataFrame 的某一列。函数 `my_func` 接受一个参数 `x`,将其乘以 2 并返回。最后,将得到的结果存储为新的一列 C,并输出 DataFrame。
相关问题
dataframe新增一列
要在dataframe中新增一列,可以使用以下方法:
1. 使用索引方式新增一列
```python
import pandas as pd
#创建一个dataframe
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
#新增一列C
df['C'] = [7, 8, 9]
print(df)
```
输出:
```
A B C
0 1 4 7
1 2 5 8
2 3 6 9
```
2. 使用assign方式新增一列
```python
import pandas as pd
#创建一个dataframe
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
#新增一列C
df = df.assign(C=[7, 8, 9])
print(df)
```
输出:
```
A B C
0 1 4 7
1 2 5 8
2 3 6 9
```
3. 使用apply方式新增一列
```python
import pandas as pd
#创建一个dataframe
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
#新增一列C,C列的值是A列和B列的和
df['C'] = df.apply(lambda x: x['A'] + x['B'], axis=1)
print(df)
```
输出:
```
A B C
0 1 4 5
1 2 5 7
2 3 6 9
```
其中,`axis=1`表示对每一行进行操作。
dataframe对某列apply lambda
### 对 Pandas DataFrame 列应用 Lambda 函数
在 Pandas 中,`apply()` 方法可以用于对整个 DataFrame 或者特定列执行自定义函数。当与 `lambda` 表达式一起使用时,这允许快速而灵活地转换数据。
对于单个列的操作,可以直接调用该列并随后链上 `.apply()` 方法加上所需的 `lambda` 函数。下面是一个具体的例子:
假设存在一个名为 `df` 的 DataFrame,其中有一列表示数值型的销售量 `'Sales'` ,现在希望创建一个新的列 `'Discounted_Sales'` 来存储打折后的销售额(原价打八折)。可以通过如下方式实现:
```python
import pandas as pd
# 构建样本 DataFrame
data = {'Product': ['apple', 'banana', 'orange'],
'Sales': [100, 200, 300]}
df = pd.DataFrame(data)
# 应用 lambda 函数到 'Sales' 列以计算折扣价格,并保存至新列 'Discounted_Sales'
df['Discounted_Sales'] = df['Sales'].apply(lambda x: x * 0.8)
print(df)
```
这段代码会输出原始表格以及新增的一列显示了每项商品按比例减少后的售价[^2]。
如果目标是对字符串类型的列进行更复杂的操作,比如将产品名称全部转为大写字符,则可采用类似的逻辑:
```python
df['Product_Upper'] = df['Product'].apply(lambda x: x.upper())
```
上述方法同样适用于其他类型的数据变换需求,只需调整传递给 `lambda` 的具体运算即可满足不同的业务场景要求[^3]。
阅读全文