Pandas用in替换脏的字符串

2024-05-05 11:22:09 发布

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

我试图做一些机器学习练习,但是我的数据帧的ID列给我带来了麻烦。我有这个:

0    LP001002
1    LP001003
2    LP001005
3    LP001006
4    LP001008

我想要这个:

0    001002
1    001003
2    001005
3    001006
4    001008

我的想法是使用replace函数ID.replace('[LP]', '', inplace=True),但这实际上并没有改变序列。有人知道转换此列的好方法吗


Tags: 数据方法函数机器idtrue序列replace
2条回答

下面是一些适用于给定示例的内容:

import pandas as pd
df = pd.DataFrame({'colname': ['LP001002', 'LP001003']})

# Slice off the 0th and 1st character of the string
df['colname'] = [x[2:] for x in df['colname']]

如果这是您的索引,您可以通过df['my_index'] = df.index访问它,然后按照其余的说明进行操作

一般来说,您可以考虑使用类似于scikit中的label encoder的东西来学习如何将非数字元素转换为数字元素

您可以使用replace

df
Out[656]: 
        Val
0  LP001002
1  LP001003
2  LP001005
3  LP001006
4  LP001008
df.Val.replace({'LP':''},regex=True)
Out[657]: 
0    001002
1    001003
2    001005
3    001006
4    001008
Name: Val, dtype: object

相关问题 更多 >