Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pd.replace未按预期运行_Python_Pandas_Dataframe - Fatal编程技术网

Python pd.replace未按预期运行

Python pd.replace未按预期运行,python,pandas,dataframe,Python,Pandas,Dataframe,我一直在使用此方法将特征分配给数据帧中各自的数字: usagers = usagers.replace({'actp':{-1:'Non renseigné', 0:'Non renseigné ou sans objet', 1:'Sens véhicule heurtant', 2:'Sens inverse du véhicule', 3:'Traversant', 4:'Masqué', 5:'Jouant – courant', 6:'Avec animal', 9:'Autre',

我一直在使用此方法将特征分配给数据帧中各自的数字:

usagers = usagers.replace({'actp':{-1:'Non renseigné', 0:'Non renseigné ou sans objet', 1:'Sens véhicule heurtant', 2:'Sens inverse du véhicule', 3:'Traversant', 4:'Masqué', 5:'Jouant – courant', 6:'Avec animal', 9:'Autre', 'A':'Monte/descend du véhicule', 'B':'Inconnue'}})
除了这一列之外,所有的数据都非常有效

有人知道为什么它在特定的专栏上不起作用吗? 它不会产生错误,只是运行,对值不做任何更改


干杯

数据类型是对象

这表明您的
str
s代表数字而不是数字,请尝试将
dict
中的键更改为
str
s。考虑下面的例子:

import pandas as pd
df = pd.DataFrame({"x": ["1", "2", "3"]})
print(df.x.dtype)  # object
df["x1"] = df.x.replace({1: "A", 2: "B", 3: "C"})
df["x2"] = df.x.replace({"1": "A", "2": "B", "3": "C"})
print(df)
输出

   x x1 x2
0  1  1  A
1  2  2  B
2  3  3  C

“1”
str
包含单个字符)和
1
int
)是不同的,因此您需要在您的
dict

中找到正确的一个。所述列的数据类型是什么?数据类型是objectOK,您是对的,它与数据类型有关,它是数据集中唯一既有字母又有数字的列,这就是为什么我还没有遇到这个问题,我在数字周围加了引号,它起了部分作用,-1仍然没有被处理,但我知道现在的问题是什么。非常感谢。好的,最后我把字母“A”和“B”改成整数“10”和“11”,把数据类型改回int,它就工作了,我不能让它把-1当作一个字符串,因为某种原因仍然替换这个值。。。