python - Groupby,过滤熊猫中特定字符串之间的行
问题描述
我想按 分组df
,然后过滤掉列和列test
之间的行(我在下面标记了它们)。A
STATION
A
END
df
请注意,字母区分大小写(即,必须是STATION
而不是Station
)。
df
看起来像这样:
A B C test
0 NaN NaN NaN NaN
1 TEXT <1 >1 555
2 EXAMPLE NaN NaN NaN
3 tj XYZ NaN NaN
4 NaN xyz NaN NaN
5 Station NaN NaN NaN
6 NaN NaN NaN NaN
7 STATION NaN NaN NaN * Filter Start
8 Code1 <1000 >1000 555
9 Code2 <1000 >1000 555
10 END NaN NaN NaN * Filter End
11 TEXT NaN NaN NaN
0 NaN NaN NaN NaN
1 Station NaN NaN NaN
2 NaN NaN NaN NaN
3 STATION NaN NaN NaN * Filter Start
4 Code3 <1000 >1000 666
5 END NaN NaN NaN * Filter End
...
预期输出:
8 Code1 <1000 >1000 555
9 Code2 <1000 >1000 555
4 Code3 <1000 >1000 666
解决方案
首先,我并没有真正理解您所说的“分组依据test
”是什么意思。输出似乎并没有真正分组。尽管如此,我还是过滤掉了。这里是:
df = pd.DataFrame(x, columns=cols)
df['ind'] = 0
df.loc[df['A'] == 'STATION', 'ind'] = 1
df.loc[df['A'] == 'END', 'ind'] = -1
df['ind'] = df['ind'].cumsum()
df[(df['ind']==1) & (df['A'] != 'STATION')]
推荐阅读
- node.js - discord.js 中的头像命令
- python - 如何使用 AsyncPG 捕获 SQL 错误?
- java - SQLite 删除一行并将所有其他行向上移动
- swift - 静态菜单的 SplitViewController。苹果故事板
- django - 我如何在 django python 中创建删除按钮?
- android - 如何检查 Kotlin 中的 TextView 是否为空?
- python - Numpy:求解一个未知数+数的线性方程组
- apache-storm - 挂钩 Storm 的故障机制
- java - 我应该如何模拟 RestTemplateBuilder
- php - 如何使用 file_get_contents() 发布 Shopify API REST 帖子?