我有一個數據框 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 關注
- 156 瀏覽
添加回答
舉報
0/150
提交
取消