這是我的df:
personUID LR_Value_y diagnosis_y
0 abc1 10 10 ICD10_R99 ICD10_R98
1 abc5 200 ICD10_R99
2 abc1 10 10 ICD10_R99 ICD10_R98
3 abc2 15 ICD10_R98
4 abc3 14 ICD10_R97
5 abc4 100 ICD10_R97
如何將這些添加到“10 10”值以獲得 20?
uj5u.com熱心網友回復:
對于每一行,您可以在空白處拆分字串,將每個數字從字串文字轉換為整數,然后添加它們。
使用串列理解執行上述操作的一種方法:
df['LR_Value_y'] = [sum(int(x) for x in string.split()) for string in df['LR_Value_y']]
使用str.splitandexplode方法的另一種方式:
df['LR_Value_y'] = df['LR_Value_y'].str.split().explode().astype(int).groupby(level=0).sum()
輸出:
personUID LR_Value_y diagnosis_y
0 abc1 20 ICD10 R99 ICD10 R98
1 abc5 200 ICD10 R99
2 abc1 20 ICD10 R99 ICD10 R98
3 abc2 15 ICD10 R98
4 abc3 14 ICD10 R97
5 abc4 100 ICD10 R97
請注意,這改變了LR_Value_y列的 dtype 。如果您需要將每個元素作為 str 型別,您也可以使用astype(str)(但我認為您并不是真的想要)。
uj5u.com熱心網友回復:
您可以替換空格 并評估運算式:
df['LR_Value_y'] = pd.eval(df['LR_Value_y'].str.replace(r'\s ', ' '))
print(df)
# Output
personUID LR_Value_y diagnosis_y
0 abc1 20 ICD10_R99 ICD10_R98
1 abc5 200 ICD10_R99
2 abc1 20 ICD10_R99 ICD10_R98
3 abc2 15 ICD10_R98
4 abc3 14 ICD10_R97
5 abc4 100 ICD10_R97
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/409862.html
標籤:
上一篇:列中的混合日期
