Str.replace method returns an attribute error.
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.
This stack overflow thread recommends to check if my column has NAN values but non of the values in my column are NAN.
3 Answers
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:
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 2Two ways:
You can use
seriesto fix this error.dc_listings['price'].series.str.replace(',', '')
And if
seriesdoesn't work you can also alteratively useapply(str)as shown below:dc_listings['price'].apply(str).str.replace(',', '')
If price is a dtype float 64 then the data is not a string. You can try dc_listings['price'].apply(function)