我在数据框(df_Type4)中有一列(DS),该列的打孔值如下所示
16 100
17 10}
18 20}
21 200
22 10N
我想将}的最后一位替换为0,以使数字为100,例如,明智的N为5,因此数字为105,依此类推。
我尝试如下提取最后一位。
df_Type4['DS'].str[2]
我想使用if-else因为有多个值。但是,当我将其视为字符串时,它似乎不起作用。还有其他方法吗?
答案 0 :(得分:1)
如果要进行多个转换,请使用以下内容:
trans_dict = {'}': '0',
'N': '5'}
trans_table = ''.join(trans_dict.keys()).maketrans(trans_dict)
df_Type4['DS'] = df_Type4['DS'].str.translate(trans_table)
16 100
17 100
18 200
21 200
22 105
或更简单地,您可以使用:
df_Type4['DS'] = df_Type4['DS'].replace(trans_dict, regex=True)
答案 1 :(得分:0)
尝试:
df_Type4['DS'] = df_Type4['DS'].str.replace("}", "0")
df_Type4['DS'] = df_Type4['DS'].str.replace("N", "5")
# etc.
或将它们链接成一个长表达式:
df_Type4['DS'] = df_Type4['DS'].str.replace("}", "0").replace("N", "5")
取决于您要替换多少个不同的值。然后将列从字符串转换为整数(或浮点数):
df_Type4['DS'] = pd.to_numeric(df_Type4['DS'])