gpt4 book ai didi

python - Pandas 如何处理 'object' dtype 的系列

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:31 27 4
gpt4 key购买 nike

我使用 pandas 版本“0.12.0”。我有一个数据框如下。 id 系列的 dtype 最初是 float 的,但我被告知它也可以包含字符串,因此我的代码需要满足这种可能性。所以id当前的dtype是object。

df = pd.DataFrame({'id' : [123,512,'zhub1', 12354.3, 129, 753, 295, 610],
'colour': ['black', 'white','white','white',
'black', 'black', 'white', 'white'],
'shape': ['round', 'triangular', 'triangular','triangular','square',
'triangular','round','triangular']
}, columns= ['id','colour', 'shape'])

df.dtypes
->id object
->colour object
->shape object
->dtype: object

但是,检查 id 中的值或使用 id 的内容设置“等于”条件不起作用:

'zhub1' in df.id
->False
123 in df.id
->False
df.ix[df.id=='zhub1']
->Empty DataFrame
->Columns: [id, colour, shape]
->Index: []

我还尝试将 id 的 dtype 转换为 str 但没有帮助:

df.id = df.id.astype(str)

我不知道此时应该如何处理id,因为我不明白object dtype在此上下文中的行为方式。有任何想法吗?

最佳答案

这样做:

In [41]:

df[df.id.isin(['zhub1'])]
Out[41]:
id colour shape
2 zhub1 white triangular

[1 rows x 3 columns]

或更好:

In [42]:

df[df.id == 'zhub1']
Out[42]:
id colour shape
2 zhub1 white triangular

[1 rows x 3 columns]

整数比较也有效:

In [43]:

df[df.id == 123]
Out[43]:
id colour shape
0 123 black round

[1 rows x 3 columns]

关于python - Pandas 如何处理 'object' dtype 的系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22171269/

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