gpt4 book ai didi

Python Pandas 过滤;类型错误 : cannot convert the series to

转载 作者:行者123 更新时间:2023-12-01 02:19:04 25 4
gpt4 key购买 nike

我有一个如下所示的数据框:

ID  Instrument  Units   Price   Status
165 WTICO_USD -1 60.264 OPEN
169 WTICO_USD -1 60.274 OPEN
173 WTICO_USD 1 54.284 OPEN
185 BCO_USD 1 60.124 OPEN

如果我写下以下内容,我就会得到我所期望的:

DF[(DF.Instrument=='WTICO_USD')]

与此相同:

DF[(DF.Instrument=='WTICO_USD')&(DF.ID==165)]

但是,如果我尝试进一步过滤,就像这样,我不会得到任何行:

DF[(DF.Instrument=='WTICO_USD')&(DF['Units']==-1)]

同上

DF[(DF.Instrument=='WTICO_USD')&(DF.Units=='-1')]

但是,这会产生错误:

DF[(DF.Instrument=='WTICO_USD')&(DF['Units']>-1)]

TypeError: cannot convert the series to class 'int'

所以,我尝试这个并得到另一个错误:

DF.Units.applymap(int)

'Series' object has no attribute 'applymap'

因此,由于我选择了单位列中的所有值,因此我得到了一个无法转换的系列。但为什么当我尝试这个时我也会得到这样的结果?

DF[(DF.Instrument=='WTICO_USD')&(int(DF['Units'])>-1)]

cannot convert the series to class 'int'

如何过滤 Instrument == WTICO_USD 的所有行并有一个 Units < 0

最佳答案

您可以使用DF.Units = DF.Units.map(int)DF.Units = DF.Units.astype(int)。从那里你的过滤器应该可以工作。

仅供引用Difference between map, applymap and apply methods in Pandas ,很好地解释了 applyapplymapmap 之间的差异。您可能会注意到,在方法的定义下,applymap 对于一系列来说是无意义的。

关于Python Pandas 过滤;类型错误 : cannot convert the series to <class 'int' >,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48120611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com