Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 熊猫:删除重复项()_Python_Pandas_Duplicates_Nan - Fatal编程技术网

Python 熊猫:删除重复项()

Python 熊猫:删除重复项(),python,pandas,duplicates,nan,Python,Pandas,Duplicates,Nan,我正在尝试删除序列中的重复项,然后用0填充NAN。应该很简单,但是当我将这两个函数链接在一起时,我仍然会得到NaN,这是我期望的0.0 df = pd.DataFrame({'a':[1,1,2,3,3,4], 'b':[10,20,30,40,50,60]}) df['a'] = df['a'].drop_duplicates().fillna(0) 收益率: a b 0 1.0 10 1 NaN 20 2 2.0 30 3 3.0 40 4 NaN 50

我正在尝试删除序列中的重复项,然后用0填充NAN。应该很简单,但是当我将这两个函数链接在一起时,我仍然会得到
NaN
,这是我期望的
0.0

df = pd.DataFrame({'a':[1,1,2,3,3,4], 'b':[10,20,30,40,50,60]})
df['a'] = df['a'].drop_duplicates().fillna(0)
收益率:

     a   b
0  1.0  10
1  NaN  20
2  2.0  30
3  3.0  40
4  NaN  50
5  4.0  60
鉴于:

df['a'] = df['a'].drop_duplicates()
df['a'] = df['a'].fillna(0)
工作正常,但似乎不必要的冗长


我使用的是pandas 0.20.3。

删除重复项后出现问题删除一些值并对齐创建
NaN
s值。因此
reindex
帮助:

df['a'] = df['a'].drop_duplicates().reindex(df.index, fill_value=0)
print (df)
   a   b
0  1  10
1  0  20
2  2  30
3  3  40
4  0  50
5  4  60
或与
loc
一起使用:

df.loc[df['a'].duplicated(), 'a'] = 0
print (df)
   a   b
0  1  10
1  0  20
2  2  30
3  3  40
4  0  50
5  4  60

由于
drop\u duplicates
删除元素,因此结果的大小小于要分配回的数据帧。这会导致索引不匹配

或者,将
掩码
/
where
复制
-

df['a'] = df['a'].mask(df['a'].duplicated(), 0)
或者


或者:df['a']=df['a'].drop_duplicates().reindex(df.index).fillna(0)。谢谢@jezrael!我喜欢这种方法,与我通常使用的方法不同,但值得思考,谢谢@COLDSPEED@pshep123。不客气!另外,我的第二行代码有一个输入错误,对此表示抱歉。
df['a'] = df['a'].where(~df['a'].duplicated(), 0)
df

   a   b
0  1  10
1  0  20
2  2  30
3  3  40
4  0  50
5  4  60