lambda在python中的用法_在python中对lambda使用.assign()方法

在探索比特币加密货币市场的DataCamp项目中,遇到一个问题:在使用`assign()`方法并传入`lambda`表达式计算DataFrame `cap`中前10个硬币的市值百分比时,出现错误。尝试先定义`market_cap_perc`变量后再调用`assign()`,导致KeyError。错误发生在尝试获取DataFrame中不存在的键时。
摘要由CSDN通过智能技术生成

我在Python中运行以下代码:#Declaring these now for later use in the plots

TOP_CAP_TITLE = 'Top 10 market capitalization'

TOP_CAP_YLABEL = '% of total cap'

# Selecting the first 10 rows and setting the index

cap10 = cap.loc[:10, :].set_index('id')

# Calculating market_cap_perc

cap10 = cap10.assign(market_cap_perc =

lambda x: (x.market_cap_usd / cap.market_cap_usd.sum()) * 100)

# Plotting the barplot with the title defined above

ax = cap10.plot.bar(x= id, y= market_cap_perc)

ax.set_title(TOP_CAP_TITLE)

# Annotating the y axis with the label defined above

ax.set_ylabel(TOP_CAP_YLABEL)

得到一个错误:

^{pr2}$

这是探索比特币加密货币市场的DataCamp项目任务4的代码。cap是列为id(例如“比特币”、“涟漪”)的数据帧。另一列market_cap_usd(此列包括加密货币市场的美元成本)。例如,'159640995719'-它是比特币的market_cap_usd)。

以下是完成此任务的说明:

1.选择前10个硬币,将索引设置为id,并将生成的数据帧分配给cap10。

2.使用assign()计算每枚硬币的市值百分比,并再次将其分配给cap10。

3.在标题为“前10个市值”的条形图中画出前10个硬币的market_cap_perc,并将其分配给ax。

4.使用ax对象,用“total cap”注释y轴。

我试着在lambda之前定义市盈率:

market_cap_perc = 0

然后得到一个错误:KeyError Traceback (most recent call last)

2133 try:

-> 2134 return self._engine.get_loc(key)

2135 except KeyError:

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4443)()

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4289)()

KeyError: 139887424317984

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值