Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在dataframe(Python 3.6)中将字节隐式转换为字符串_Python_Python 3.x_Pandas - Fatal编程技术网

在dataframe(Python 3.6)中将字节隐式转换为字符串

在dataframe(Python 3.6)中将字节隐式转换为字符串,python,python-3.x,pandas,Python,Python 3.x,Pandas,我想将字节转换为字符串,即在创建输出文件之前删除“b”前缀 我尝试了这里提到的解决方案: 虽然它适用于列[colb]和[cold],但列[cola]和[colc]是空白的。这主要是因为所有4列都是object类型。我不知道如何仅隐式选择列[colb]和[cold],然后应用decode函数。需要隐式选择这两列进行解码,因为数据帧是从SQL查询的输出创建的 以前是否有人遇到过这种情况,并能提出解决方案 提前谢谢 演示: str_df = df.select_dtypes([np.object])

我想将字节转换为字符串,即在创建输出文件之前删除“b”前缀

我尝试了这里提到的解决方案:

虽然它适用于列[colb]和[cold],但列[cola]和[colc]是空白的。这主要是因为所有4列都是object类型。我不知道如何仅隐式选择列[colb]和[cold],然后应用decode函数。需要隐式选择这两列进行解码,因为数据帧是从SQL查询的输出创建的

以前是否有人遇到过这种情况,并能提出解决方案

提前谢谢

演示:

str_df = df.select_dtypes([np.object])
str_df = str_df.stack().str.decode('utf-8').unstack()
for col in str_df:
    df[col] = str_df[col]

谢谢@MaxU的回复!但是,这对我不起作用。我理解代码试图做什么,并且isinstance函数在applymap函数之外工作。我需要导入任何库才能使用applymap吗?再次感谢@MaxU的帮助。当我执行以下操作时,这就起作用了:df=df.applymap(lambda x:x.decode(),如果isinstance(x,bytes)else x)
str_df = df.select_dtypes([np.object])
str_df = str_df.stack().str.decode('utf-8').unstack()
for col in str_df:
    df[col] = str_df[col]
In [12]: df
Out[12]:
    cola      colb   colc      cold
0  cola1  b'colb1'  colc1  b'cold1'
1  cola2  b'colb2'  colc2  b'cold2'
2  cola3  b'colb3'  colc3  b'cold3'
3  cola4  b'colb4'  colc4  b'cold4'
4  cola4  b'colb4'  colc4  b'cold4'

In [13]: df.applymap(lambda x: x.decode() if isinstance(x, bytes) else x)
Out[13]:
    cola   colb   colc   cold
0  cola1  colb1  colc1  cold1
1  cola2  colb2  colc2  cold2
2  cola3  colb3  colc3  cold3
3  cola4  colb4  colc4  cold4
4  cola4  colb4  colc4  cold4