我生成了一个 DataFrame,其中包含一个名为“pred_categories”的列,其数值为 0、1、2 和 3。见下文:
fileids pred_categories
0 /Saf/DA192069.txt 3
1 /Med/DA000038.txt 2
2 /Med/DA000040.txt 2
3 /Saf/DA191905.txt 3
4 /Med/DA180730.txt 2
我写了一个字典:
di = {3: "SAF", 2: "MED", 1: "FAC", 0: "ENV"}
它首先起作用:
df.replace({'pred_categories': di})
Out[16]:
fileids pred_categories
0 /Saf/DA192069.txt SAF
1 /Med/DA000038.txt MED
2 /Med/DA000040.txt MED
3 /Saf/DA191905.txt SAF
4 /Med/DA180730.txt MED
5 /Saf/DA192307.txt SAF
6 /Env/DA178021.txt ENV
7 /Fac/DA358334.txt FAC
8 /Env/DA178049.txt ENV
9 /Env/DA178020.txt ENV
10 /Env/DA178031.txt ENV
11 /Med/DA000050.txt MED
12 /Med/DA180720.txt MED
13 /Med/DA000010.txt MED
14 /Fac/DA358391.txt FAC
然后在检查的时候
df.head()
它似乎并没有将其永久“保存”在 DataFrame 中。关于我做错了什么的任何指示?
print(df)
fileids pred_categories
0 /Saf/DA192069.txt 3
1 /Med/DA000038.txt 2
2 /Med/DA000040.txt 2
3 /Saf/DA191905.txt 3
4 /Med/DA180730.txt 2
5 /Saf/DA192307.txt 3
6 /Env/DA178021.txt 0
7 /Fac/DA358334.txt 1
8 /Env/DA178049.txt 0
9 /Env/DA178020.txt 0
10 /Env/DA178031.txt 0
11 /Med/DA000050.txt 2
12 /Med/DA180720.txt 2
13 /Med/DA000010.txt 2
14 /Fac/DA358391.txt 1
最佳答案
默认 .replace()
返回更改的 DF,但它不会就地更改它,因此您必须这样做:
df = df.replace({'pred_categories': di})
或
df.replace({'pred_categories': di}, inplace=True)
关于python - 将 python df.replace 与 dict 一起使用不会永久更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37666575/