我有一个 Python3.x pandas DataFrame,其中某些列是表示为字节的字符串(如 Python2.x 中)
import pandas as pd
df = pd.DataFrame(...)
df
COLUMN1 ....
0 b'abcde' ....
1 b'dog' ....
2 b'cat1' ....
3 b'bird1' ....
4 b'elephant1' ....
当我使用 df.COLUMN1
按列访问时,我看到 Name: COLUMN1, dtype: object
但是,如果我按元素访问,它是一个“字节”对象
df.COLUMN1.ix[0].dtype
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'bytes' object has no attribute 'dtype'
如何将这些转换为“常规”字符串?也就是说,我怎样才能摆脱这个 b''
前缀?
原文由 ShanZhengYang 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用矢量化
str.decode
将字节字符串解码为普通字符串:要为多列执行此操作,您可以只选择 str 列:
转换所有这些:
然后,您可以将转换后的列替换为原始的 df 列: