Pandas:查找特定名称对应的日期并保留该日期下的所有行
解决方法
步骤1:获取目标名称对应的所有唯一日期
先定位包含目标名称的行,提取其中的日期并去重,就能得到该名称出现的所有不同日期:
target_name = "Sa Majesté (#p32)" # 筛选出目标名称的行,提取日期列后去重 target_dates = df[df["Name"] == target_name]["Meeting Dates"].unique()
执行后target_dates会得到结果:array(['1746-06-02', '1746-06-09'], dtype=object),即目标名称对应的所有唯一日期。
步骤2:筛选原DataFrame中属于这些日期的所有行
用isin()方法判断每行的日期是否在target_dates列表中,保留符合条件的行:
# 筛选所有日期在目标日期列表中的行 filtered_df = df[df["Meeting Dates"].isin(target_dates)]
最终得到的filtered_df会包含1746-06-02和1746-06-09这两天的所有参会记录,完全匹配你的需求。
额外说明
你之前用来统计名称出现次数的代码可以保留,和日期筛选逻辑互不冲突:
# 查看目标名称的出现次数 count = df["Name"].value_counts()["Sa Majesté (#p32)"]
内容的提问来源于stack exchange,提问作者noahjb
相关产品推荐
相关产品推荐

