我试图根据以下条件删除 pandas 中的一组分组行:
如果一个组(按 col1 分组)在 col2 中具有超过 2 个值“c”,则删除整个组。
我所拥有的看起来像这样
col1 col2
0 A 10:10
1 A 20:05
2 A c
3 A 00:10
4 B 04:15
2 B c
3 B c
4 B 13:40
Run Code Online (Sandbox Code Playgroud)
我正在努力到达这里:
col1 col2
0 A 10:10
1 A 20:05
2 A c
3 A 00:10
Run Code Online (Sandbox Code Playgroud)
通常我会对其他非常相似的数据框执行此操作(并且它有效):
df = df.groupby('col1').filter(lambda x: x["col2"].value_counts()[['c']].sum() < 2)
Run Code Online (Sandbox Code Playgroud)
但对于这个不起作用,我收到此错误:
KeyError: "None of [Index(['c'], dtype='object')] are in the [index]"
Run Code Online (Sandbox Code Playgroud)
有人知道我该怎么做吗?
谢谢!
我正在使用一个数据框,其中有一列包含多个 NaN,我想根据以下条件填充该 NaN:如果向后和向前最多 3 行,则有 2 个相等的值,然后用该值填充 NaN。
由于这可能不太清楚,下面举几个例子:
col1
0 10
1 10
2 NaN
3 NaN
4 NaN
5 10
6 5
7 NaN
8 5
9 NaN
10 NaN
11 NaN
12 NaN
Run Code Online (Sandbox Code Playgroud)