python dataframe转string_如何将“bytes”对象转换为pandas Dataframe,Python3.x中的文字字符串?...

我有一个

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 "", line 1, in

AttributeError: 'bytes' object has no attribute 'dtype'

如何将这些转换为“常规”字符串?也就是说,我怎样才能摆脱这个b”前缀?

您可以使用vectorised

str.decode将字节字符串解码为普通字符串:

df['COLUMN1'].str.decode("utf-8")

要对多个列执行此操作,您只需选择str列:

str_df = df.select_dtypes([np.object])

转换所有这些:

str_df = str_df.stack().str.decode('utf-8').unstack()

然后,您可以将转换后的cols与原始df cols交换出来:

for col in str_df:

df[col] = str_df[col]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值