Pandas的问题

李悠荨
  • 20

自学pandas的时候遇到个问题,
大意需要根据客户的属性和销售额,模拟计算客户的利润,如果客户是小卖部的话,利润=4*0.6
但是运行提示KeyError: '客户'

import pandas as pd
data1={
    "客户":["小卖部","超市","连锁超市"],
    "销售额":[4,5,6]
    }
data=pd.DataFrame(data1)
data.insert(loc=2,column="利润",value=data.apply(lambda x:x["金额"]*0.6 if not x["客户"]=="小卖部" else x["金额"]))
print(data)
print("Done~~")
回复
阅读 212
1 个回答
✓ 已被采纳

多看看官方文档axis 取不同值时,apply 中的 lambda 函数的参数是不一样的(行或列)。

>>> import pandas as pd
>>> data1 = { "客户":["小卖部","超市","连锁超市"], "销售额":[4,5,6] }
>>> data = pd.DataFrame(data1)
>>> data.insert(loc=2, column="利润", value=data.apply(lambda x : x["销售额"] * 0.6 if not x["客户"] == "小卖部" else x["销售额"], axis=1))
>>> data
     客户  销售额   利润
0   小卖部    4  4.0
1    超市    5  3.0
2  连锁超市    6  3.6
>>>
宣传栏