下面是我的数据集中的虚拟数据
Airline Source Destination Route Dep_Time Duration Total_Stops Additional_Info Month Day Price
0 3 0 5 18 1.647042 1.647042 4 8 3 24 3897
1 1 3 0 84 -1.258929 -1.258929 1 8 1 5 7662
2 4 2 1 118 -0.606391 -0.606391 1 8 9 6 13882
3 3 3 0 91 0.924899 0.924899 0 8 12 5 6218
4 3 0 5 29 0.655184 0.655184 0 8 1 3 13302
现在我想使用 for 循环将某些列的值替换为下面的字典
airdic = {4: 36.02920528, 3: 19.21744828, 1: 16.39988767}
我使用下面的代码来替换值,但它不起作用
注意:替换函数在 for 循环之外工作
for i in cat_var_3:
dummydf.replace({(i):airdic})
car_var_3 是包含列名称的列表
如何解决?
最佳答案
您需要包含 inplace = True
,因为 replace
操作不会就地发生。请引用以下内容:
cat_var_3 = ['Ai','Dura']
airdic = {4: 36.02920528, 3: 19.21744828, 1: 16.39988767}
for i in cat_var_3:
df.replace({(i):airdic},inplace=True)
print(df)
Ai rline ... tion Total_Stops Additional_Info Month Day Price
0 19.217448 0 ... 24 3897
1 16.399888 3 ... 5 7662
2 36.029205 2 ... 6 13882
3 19.217448 3 ... 5 6218
4 19.217448 0 ... 3 13302
关于python - 如何使用 df.replace(key :value) inside for loop in python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70234773/