【发布时间】:2019-12-13 03:06:10
【问题描述】:
我想在两种可能的情况下解决问题:
我不知道字符串系列是
UTF-8还是预先字节。pd.Series中的字符串是混合字节和 `UTF-8/。
我猜这会有相同的解决方案。
目前为:
b = pd.Series(['123', '434,', 'fgd', 'aas', b'442321'])
b.str.decode('utf-8')
给出NaNs 字符串已经在UTF-8 中的位置。或者它们是自动 ASCII 码?我可以在decode 中给出error 参数,以便字符串在它已经在UTF-8 中的地方保持“未解码”吗?文档字符串似乎没有提供太多信息。
或者有没有更好的方法来实现这一点?
或者,在 pandas 中是否有类似 .str.decode 的字符串方法,当字符串为 bytes 或 UTF-8 时,它只返回 True/False?
编辑:
我能想到的一个选择是:
b = pd.Series(['123', '434,', 'fgd', 'aas', b'442321'])
converted = b.str.decode('utf-8')
b.loc[~converted.isnull()] = converted
这是推荐的方式吗?好像有点绕。我想更优雅的方法实际上只是一种检查 str 是否是 Series 的所有元素上的字节并在这种情况下返回布尔数组的方法。
【问题讨论】:
标签: python python-3.x pandas utf-8