Python 熊猫:`item`已被弃用

Python 熊猫:`item`已被弃用,python,pandas,Python,Pandas,到目前为止,我在这里使用了这行代码: max_total_gross = event_data["max_total_gross"].loc[event_data["event_id"] == event_id].item() 自从我更新熊猫之后,我收到了未来的警告: /opt/conda/lib/python3.7/site packages/ipykernel_launcher.py:12: FutureWarning:项已弃用,将在以后的时间内删除 如果系统路径[0]='',则为未来版本

到目前为止,我在这里使用了这行代码:

max_total_gross = event_data["max_total_gross"].loc[event_data["event_id"] == event_id].item()
自从我更新熊猫之后,我收到了未来的警告:

/opt/conda/lib/python3.7/site packages/ipykernel_launcher.py:12: FutureWarning:
项已弃用,将在以后的时间内删除
如果系统路径[0]='',则为未来版本:

我试着用这种方式解决,但结果不一样:

event_data.loc[event_data.event_id == event_id, 'max_total_gross']

我需要一个整数。

如果需要首先匹配值,请使用
iter
next
,优点是如果没有匹配值,则返回默认值:

s = event_data.loc[event_data.event_id == event_id, 'max_total_gross']

out = next(iter(s), 'no match')
print (out)
您也可以直接使用,但请记住,如果您调用的序列中没有至少一个项目,它将引发一个
索引器

s = event_data.loc[event_data.event_id == event_id, 'max_total_gross']
s.iloc[0]
如果您希望断言序列的长度正好为1,并且同时获得单个值,则方法
item()
仍然很有用。我建议更换:

result = ser.item()
与:


它应该做你想做的。

熊猫1.0中再次没有为这个用例做准备:

Series.item()和Index.item()已取消预编译(GH29250)

从。另见本期中的讨论


考虑更新或忽略或沉默警告,如果需要进一步的计算(不只是打印它),

是下一个/ITER处理数据的正确方法吗?在我的代码后面的一点上,我做
事件顺序[“y”]=事件顺序[“总计总计”]/(最大总计总计*100)
。我期望更多像s[0](不起作用)这样的方式来访问该值。next/iter永远不会出现在我的脑海中。我进行了更多的实验,我发现这一点也很有效:
max\u total\u gross=event\u data.loc[event\u data[“event\u id”]==event\u id,“max\u total\u gross”]。值[0]
你认为使用什么更好?@joycoder-你的解决方案很好,如果总是匹配至少一个值的话。如果没有,如果失败。所以这取决于数据,我更喜欢更一般的解决方案。。。
result = ser.values.item()