【发布时间】:2022-10-07 22:31:38
【问题描述】:
我想在 python 中使用 apply 和 lambda 方法来更改列中的定价。列名称是价格。所以,如果价格低于 20 我想通过并保持不变。如果 30>price>20 我想加 1。如果价格是 40>price>30 那么我想加 1.50。等等。我试图找出一种方法将这些函数应用于列,然后将其发送回 excel 格式以更新定价。我对如何做到这一点感到困惑。我尝试使用 if 子句将此操作放入函数中,但它没有吐出我需要的结果(k 是数据框的名称):
def addition():
if k[k['Price']] < 20]:
pass
if k[(k['Price']] > 20) & (k['Price] < 30)]:
return k + 1
if k[(k['Price']] > 30.01) & (k['Price] < 40)]:
return k + 1.50
等等。但是,最后,当我尝试发送时(我认为是 xlsx 中新更新的 k[k['Price] 格式,它甚至没有出现。我也尝试将 xlsx 变量设为全局变量,但是仍然没有运气。我认为使用 lambda 函数更简单,但我在决定如何根据条件分离和更新该列中的价格时遇到了麻烦。将不胜感激。
这是我试图执行不同功能的数据框:
0 23.198824
1 21.080706
2 15.810118
3 21.787059
4 18.821882
...
33525 20.347059
33526 25.665882
33527 33.077647
33528 21.803529
33529 23.043529
Name: Price, Length: 33530, dtype: float64
【问题讨论】:
-
您能否提供数据帧的 sn-p 以及您想要使用的此功能以实现您的编程目标?
-
@CalciumOwl 感谢您的回复。我已经上传了
标签: python