Python 熊猫如何用';对象';数据类型
我使用熊猫版本“0.12.0”。我有一个如下的数据帧。Python 熊猫如何用';对象';数据类型,python,pandas,Python,Pandas,我使用熊猫版本“0.12.0”。我有一个如下的数据帧。id系列的数据类型最初是float,但我被告知它也可以包含字符串,因此我的代码需要考虑这种可能性。因此,id的当前数据类型是object df = pd.DataFrame({'id' : [123,512,'zhub1', 12354.3, 129, 753, 295, 610], 'colour': ['black', 'white','white','white',
id
系列的数据类型最初是float,但我被告知它也可以包含字符串,因此我的代码需要考虑这种可能性。因此,id
的当前数据类型是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
的数据类型转换为str
,但没有帮助:
df.id = df.id.astype(str)
此时,我不知道应该如何处理id
,因为我不理解对象
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]
你的熊猫版本是什么?我的答案是0.13.1,我的答案适用于字符串和数字布尔标准。数据帧创建代码中也有错误。请删除列表中的空值->
129753
第一行的数据谢谢,更正了。我正在考虑添加一个空值(这就是为什么id
的类型是float,而不是int),但随后无法确定如何表示空条目。对于空值,可以使用NaN
或np.NaN
,注意这需要对NaN
值进行不同的比较,例如df[pd.isnull(df.id)]
我使用0.12.0(更新的问题),但这些操作不起作用?@Zhubarb这可能是一个错误,我没有安装0.12.0进行比较,你能升级吗?