首页 > 解决方案 > 复杂的字符转换 Pandas

问题描述

我有一个数据框 df,我想在其中找到任何包含“2x6.4T”的条目并将其转换为“12T”

数据

type                                                   date       free

FY18-EXX-SEE-AB_total-R899XV-584G-6.4T-R10-WOW-v.A     1/1/2020   2
FY18-SRV-AB-T670-812G-2x6.4T_18T-T6-v.B                1/1/2020   2
FY18-SRV-AB-T670-812G-2x6.4T_18T-T6-v.B                1/1/2020   2
Hello-SRR-AB-R555XF-456G-6.4T-R900-WOW-v.A             1/1/2020   2

期望的

type                                                   date       free

FY18-EXX-SEE-AB_total-R899XV-584G-6.4T-R10-WOW-v.A     1/1/2020   2
FY18-SRV-AB-T670-812G-12T_18T-T6-v.B                   1/1/2020   2
FY18-SRV-AB-T670-812G-12T_18T-T6-v.B                   1/1/2020   2
Hello-SRR-AB-R555XF-456G-6.4T-R900-WOW-v.A             1/1/2020   2

正在做

df['type']=df3.where(df3['type'].str.replace('2x6.4T','12T'), axis=0) #ROW/COL 0,1

但是,当我希望保留它们时,这实际上会删除包含 WOW 的行。我还在研究这个。任何建议表示赞赏

标签: pythonpandasnumpy

解决方案


将您的代码更改为:

 df['type']=np.where(df3['type'].str.contains('WOW'), df['type'] ,df['type'].str.replace('2x6.4T','12T'))

说明: np.where 命令语法:

np.where(标准,真值,假值)


推荐阅读