我有一个熊猫数据框,看起来像这样:
Cat Date
1 A 2019-12-30
2 A 2019-12-30
3 A 2020-12-30
4 A 2020-01-06
5 A 2020-01-06
6 B 2020-01-06
7 B 2020-01-13
8 B 2020-01-13
9 A 2020-01-13
. .
. .
. .
“日期”列中有重复的日期,我想“涂抹”数据框,以便删除所有重复的日期。然而,为了确定“smushing”之后的“Cat”列中有什么内容,我想选择被“smushing”的日期中的大多数元素
因此,我希望输出为:
Cat Date
1 A 2019-12-30
2 A 2020-01-06
3 B 2020-01-13
. .
. .
. .
效率很重要,我希望能够尽快做到这一点,因为我的数据帧非常大(100k行)。可以保证重复日期的数量始终是奇数,并且不同“Cat”字母的总数最多可以是2个,因此不需要考虑领带
我会考虑旧^ {< CD1> }
或者,您可以对两列使用拖放副本
尝试^{} 对
date
列上groupby之后的所有值进行计数:解释:
使用^{} 根据
Date
将数据帧拆分为组使用^{} 应用聚合。此函数接受聚合组的函数
定义聚合函数:
3.1。使用^{} 函数获取每个组的值数:
注意:^{} 方法的结果是一个有序的序列
3.2。然而,我们实际上想要的是
values
,而不是count
。诀窍是在序列上使用index
3.3。最后,选择第一个值:
这里有一个简单的解决方案
希望这有帮助
相关问题 更多 >
编程相关推荐