如何将筛选site stock>100、取前50行及升序排序的Pandas代码合并为单行?
Pandas 代码合并单行方案
问题背景
需求:对
site stock字段值大于100的数据进行升序排序
当前拆分代码:df2 = df.loc[df['site stock'] >100].head(50) df2.sort_values(by=['site stock'],ascending = False)疑问:能否合并为单行?确定可行,但不清楚语句顺序。
解决方案
完全可以合并成单行,核心是按**「筛选→排序→取前N条」**的顺序链式调用,同时注意修正原代码里的排序方向(原代码用了降序ascending=False,不符合需求的升序)。
合并后的单行代码:
df2 = df.loc[df['site stock'] > 100].sort_values(by=['site stock'], ascending=True).head(50)
顺序逻辑说明
- 第一步:
df.loc[df['site stock'] > 100]先筛选出site stock大于100的所有行 - 第二步:
.sort_values(...)对筛选后的结果按site stock字段升序排序 - 第三步:
.head(50)提取排序完成后的前50条数据,最终赋值给df2
另外补充:原拆分代码里的sort_values没有赋值或加inplace=True,实际上不会改变df2的顺序,合并后的单行代码直接完成所有操作,逻辑更严谨。
内容的提问来源于stack exchange,提问作者Samgrill
相关产品推荐
相关产品推荐

