删除列中的部分值

2024-09-29 23:18:21 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我在数据帧df中有列b。 b列看起来像

b
c'ASD56y'
c'DSAD89y'
c'FGTH89y'

我需要去掉b列中的单引号和c。我需要这样的输出

 b
    ASD56y
    DSAD89y
    FGTH89y

我试过了

 df.b.apply(lambda x: x.strip('c'))

抛出错误为: TypeError:需要类似字节的对象,而不是“str”

如有任何建议,将不胜感激


Tags: 数据对象lambdadf字节错误建议apply
2条回答

我认为split可以做到

df.b.str.split("'").str[1]
Out[93]: 
0     ASD56y
1    DSAD89y
2    FGTH89y
Name: b, dtype: object
df.b=df.b.str.split("'").str[1]

根据下面的评论,问题变成了encode\decode

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

只需确保在创建数据帧之前decode已修改dict的值

>>> import pandas as pd
>>> toy = {0: b'ENF009', 1: b'ENF3', 2: b'ENF3', 3: b'ENF4'}
>>> df = pd.DataFrame([v.decode() for v in toy.values()], index=toy.keys())
>>> print(df)
        0
0  ENF009
1    ENF3
2    ENF3
3    ENF4

相关问题 更多 >

    热门问题