Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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_Numpy_Dictionary_Duplicates - Fatal编程技术网

Python 如何使用重复的行和条件更新列?

Python 如何使用重复的行和条件更新列?,python,pandas,numpy,dictionary,duplicates,Python,Pandas,Numpy,Dictionary,Duplicates,我有重复的数据,并给出了一组条件,我想用“标志”更新列。 原件: A. B C D aa 福 4. 7. 15 -99.0 福 4. 7. 15 0.1 酒吧 5. 9 3. 14 酒吧 6. 2. 4. 14 使用idxmax查找组中最高值的索引并设置为1: COLS=[“A”、“B”、“C”、“D”] df[“保持”]=0 df.loc[df.groupby(COLS)[“aa”].apply(lambda x:x.idxmax())。值,“Keep”]=1 >>df A、B、C、D、A

我有重复的数据,并给出了一组条件,我想用“标志”更新列。
原件:

A. B C D aa 福 4. 7. 15 -99.0 福 4. 7. 15 0.1 酒吧 5. 9 3. 14 酒吧 6. 2. 4. 14
使用
idxmax
查找组中最高值的索引并设置为1:

COLS=[“A”、“B”、“C”、“D”]
df[“保持”]=0
df.loc[df.groupby(COLS)[“aa”].apply(lambda x:x.idxmax())。值,“Keep”]=1
>>df
A、B、C、D、A
0 foo 4715-99.0 0
1 foo 4 7 15 0.1 1
2巴59314.01
3巴6 2 4 14.0 1

5天后,我发现我在重复记录之前漏掉了一行。我失踪了: df=df.reset_索引(drop=True)


添加使脚本工作并标记Keep变量的。我愿意接受更多的解决方案,尤其是较短的解决方案(类似于上面的Correlian)。

如果两个重复值为-99.0或相同的值0.1或其他值,会发生什么情况。它只选择一个还是?
idxmax
返回最大值的索引,因此如果最高值重复,则返回第一个索引。其他较低的值并不重要。