python 仅重新格式化包含以下内容的单元格

b5buobof  于 2023-01-12  发布在  Python
关注(0)|答案(2)|浏览(135)

我正在尝试理解如何在 Dataframe 中找到包含特定子字符串的单元格(我想砍掉某些字符串末尾的"R"),并重新格式化这些单元格,以保留原始值减去最后一个字符
示例:

"Value"   "Designator"
1  47        R12
2  47R       R13
3  220K      R14
4  RGB LED   LED1
5  220R      R15

应该成为

"Value"   "Designator"  
1  47        R12
2  47        R13
3  220K      R14
4  RGB LED   LED1
5  220       R15

我可以找到带有. contains和regex表达式的单元格,但我不知道如何保留原始内容,只去掉末尾的"R"
任何帮助都很感激

9avjhtql

9avjhtql1#

如果数字使用后的最后一个值,则需要删除R

df['Value'] = df['Value'].str.replace('(\d)R$',r'\1', regex=True)
print (df)
 "Value"   "Designator"
1  47        R12
2  47R       R13
3  220K      R14
4  RGB LED   LED1
5  220R      R15

或者,如果需要从所有字符串末尾开始的R

df['Value'] = df['Value'].str.rstrip('R')
print (df)
     Value Designator
1       47        R12
2       47        R13
3     220K        R14
4  RGB LED       LED1
5      220        R15
dz6r00yl

dz6r00yl2#

对所有列应用rstrip

df = pd.DataFrame({"Value": ['47', '47R', '220K', 'RGB LED', '220R'],
                   "Designator": ['R12', 'R13', 'R14', 'LED1', 'R15']})

df[df.columns] = df.apply(lambda x: x.str.rstrip('R'))

print(df.head())

输出:

Value Designator
0       47        R12
1       47        R13
2     220K        R14
3  RGB LED       LED1
4      220        R15

相关问题