Python AttributeError: 只能使用带有字符串值的 .str 访问器,它在 Pandas 中使用 np.object_ dtype
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/52065909/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
提问by MJP
Str.replace method returns an attribute error.
Str.replace 方法返回属性错误。
dc_listings['price'].str.replace(',', '')
AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
Here are the top 5 rows of my price column.
这是我的价格列的前 5 行。
This stack overflow thread recommendsto check if my column has NAN values but non of the values in my column are NAN.
这个堆栈溢出线程建议检查我的列是否有 NAN 值,但我列中的值都不是 NAN。
回答by Randy
As the error states, you can only use .str
with string columns, and you have a float64
. There won't be any commas in a float, so what you have won't really do anything, but in general, you could cast it first:
正如错误所述,您只能.str
与字符串列一起使用,并且您有一个float64
. 浮点数中不会有任何逗号,因此您实际上不会做任何事情,但一般来说,您可以先将其转换为:
dc_listings['price'].astype(str).str.replace...
For example:
例如:
In [18]: df
Out[18]:
a b c d e
0 0.645821 0.152197 0.006956 0.600317 0.239679
1 0.865723 0.176842 0.226092 0.416990 0.290406
2 0.046243 0.931584 0.020109 0.374653 0.631048
3 0.544111 0.967388 0.526613 0.794931 0.066736
4 0.528742 0.670885 0.998077 0.293623 0.351879
In [19]: df['a'].astype(str).str.replace("5", " hi ")
Out[19]:
0 0.64 hi 8208 hi hi 4779467
1 0.86 hi 7231174332336
2 0.04624337481411367
3 0. hi 44111244991 hi 194
4 0. hi 287421814241892
Name: a, dtype: object
回答by Subhash
If price is a dtype float 64 then the data is not a string.
You can try dc_listings['price'].apply(function)
如果 price 是 dtype float 64,则数据不是字符串。你可以试试dc_listings['price'].apply(function)