python - 如何使用 df.replace(key :value) inside for loop in python

标签 python pandas dataframe dictionary

下面是我的数据集中的虚拟数据

    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/

相关文章:

python - 高效更新 Pandas sql

python - 如何根据另一个数据帧过滤多索引数据帧

python - 从数据框列中选择非无值

Pandas 数据透视表显示每个条目的行数相等

python - Pandas 值(value)错误: invalid literal for int() with base 10: ''

python - numpy:为什么 (x,1) 和 (x, ) 维度之间存在差异

python - 此 Google Elevation API URL 有什么问题?

python - 是否有用于查询嵌套 jsonfield 键的 django-orm 查找?

python - OpenErp 新模块

python - 在 Python 中将不需要的日期时间格式的数据值更改为带破折号的数字