我正在尝试替换列中的一些 ID。
我正在使用 pd.read_excel
读取 Excel 文件并将其存储在数据框中:
df_A2C = pd.read_excel(file_loc1, index_col=None, na_values=['NA'])
这可以复制
df_A2C = pd.DataFrame({'FROM_ID': [1, 1, 1, 1, 1],
'TO_ID': [7, 26, 71, 83, 98],
'DURATION_H': [0.528555555555556,
0.512511111111111,
0.432452777777778,
0.599486111111111,
0.590516666666667],
'DIST_KM': [38.4398, 37.38515, 32.57571, 39.26188, 35.53107]})
此后,我将检查要使用以下代码替换的值:
df_A2C.loc[(df_A2C['FROM_ID'] == 9)]
这给出了输出:
FROM_ID TO_ID DURATION_H DIST_KM FROM_ID
9 7 1.183683 89.26777 9
9 26 1.167639 88.21312 9
9 71 1.087581 83.40369 9
9 83 1.254614 90.08985 9
9 98 1.245642 86.35904 9
现在,我尝试将 FROM_ID
值 9
替换为 8
。
我已经尝试过以下代码。
df_A2C['FROM_ID'] = df_A2C['FROM_ID'].replace('9','8')
另外,
df_A2C.loc[ df_A2C["FROM_ID"] == "9", "FROM_ID"] = "8"
为了测试结果,我正在执行 df_A2C.loc[(df_A2C['FROM_ID'] == 8)]
输出:
FROM_ID TO_ID DURATION_H DIST_KM FROM_ID
这些都不起作用。
我想将 FROM_ID 值
9
替换为 8
。我不想创建另一个列,只想替换现有的列值。
我在这里犯了什么错误吗?
最佳答案
你试过吗
df_A2C['FROM_ID'] = df_A2C['FROM_ID'].apply(lambda x: 8 if x==9 else x)
也就是说,如果您的值是 int
如果您的值是字符串,请使用此
df_A2C['FROM_ID'] = df_A2C['FROM_ID'].apply(lambda x: '8' if x=='9' else x)
关于python - 失败 : Replace a single value with a new value for an individual DataFrame column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74244996/