我有一个数据框 df,如下所示: TB TB2 4.6 5.0 6.8 502.4 G我想要的输出是将后面带有字母 G 的任何值转换为 TB,而不干扰该列中的其他值。1000 GB = 1 TB TB TB2 4.6 5.0 6.8 0.5024一位成员建议使用以下代码:df['Partial_Capacity TB']=df['Partial_Capacity TB'].str.replace('\s\w+','').astype(float).div(1000)但是,该列中的所有值都将被转换,无论其后面的“G”如何。我现在正在研究这个,任何建议都会受到赞赏
1 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
#Select rows containing G
m=df.TB2.str.contains('G')
#Use the loc accessor to mask relevant column, strip G from string and divide by 1000
df.loc[m,'TB2']=df.loc[m,'TB2'].str.replace('\s\w+','').astype(float).div(1000)
print(df)
TB TB2
0 4.6 5.0
1 6.8 0.5024
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消