小编Tom*_*uza的帖子

错误:[index] 中没有 [Index(['...'], dtype='object')]

我试图根据以下条件删除 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)

有人知道我该怎么做吗?

谢谢!

python dataframe pandas pandas-groupby

5
推荐指数
1
解决办法
2万
查看次数

Fillna 在 Pandas 中具有向后和向前查看的状态

我正在使用一个数据框,其中有一列包含多个 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)
  • 第 2 行中的值在向后的第 1 行中具有 10,在向前的第 3 行中具有 10。--> 填写10
  • 第 3 行中的值在向后 2 行中具有 10,在向前 2 行中具有 10。--> 填写10
  • 第 4 行中的值在 3 行中向后显示为 10,在向前的 1 行中显示为 10。--> 填写10
  • 第 7 行中的值有一个向后的 5 at 1 行和向前的 5 in 1 行。--> 填写5
  • 第 9 …

python dataframe pandas fillna

4
推荐指数
1
解决办法
1486
查看次数

标签 统计

dataframe ×2

pandas ×2

python ×2

fillna ×1

pandas-groupby ×1