看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)保留「连续 3 天无缺失」的销售渠道。仓库监控 10 天的渠道库存,部分缺失:
import pandas as pd, numpy as np
df = pd.DataFrame({
"日期": pd.date_range("2024-08-01", periods=10),
"渠道": ["抖音"]*4 + ["快手"]*3 + ["微信"]*3,
"库存": [100, 200, np.nan, 150, 80, 90, np.nan, 120, 110, 130]
})
任务:
has_no_gap(group)
,group["库存"].isna().sum() == 0
的布尔值(即该渠道无缺失)。groupby().filter()
只保留 完整无缺失 的渠道子表。代码如下:
def has_no_gap(group):
return group["库存"].isna().sum() == 0
clean = df.groupby("渠道").filter(has_no_gap)
print(clean)
输出示例(仅保留完整渠道):
日期 渠道 库存
7 2024-08-08 微信 120
8 2024-08-09 微信 110
9 2024-08-10 微信 130
(完)
更新时间:2025-09-02 12:34:32 标签:pandas python 筛选 销售渠道