当日期为索引或字符串类型时,如何提取每月2日和7日的湖泊水位数据并统计极值?
Pandas 实现日期筛选与极值统计方案
步骤1:环境导入与数据预处理
import pandas as pd # 加载数据,替换为你的实际数据读取路径,csv用pd.read_csv,excel用pd.read_excel df = pd.read_csv("your_data_path.csv") # 统一处理Date字段:如果Date是索引则先重置为普通列 if df.index.name == "Date": df = df.reset_index() # 将Date列从字符串转为日期类型,适配示例的「日/月/年」格式 df["Date"] = pd.to_datetime(df["Date"], format="%d/%m/%Y")
步骤2:筛选每月2日、7日的Lake_Level值
# 提取日期的日字段做匹配,筛选后单独取Lake_Level列 filtered_lake_level = df.loc[df["Date"].dt.day.isin([2,7]), "Lake_Level"] # 输出所有符合条件的Lake_Level记录 print("每月2日、7日的Lake_Level记录:") print(filtered_lake_level.to_list())
步骤3:统计前3大值和后3小值
# 前3大值,不需要去重则删掉.drop_duplicates()即可 top3_largest = filtered_lake_level.nlargest(3).drop_duplicates() # 后3小值 top3_smallest = filtered_lake_level.nsmallest(3).drop_duplicates() print("\nLake_Level前3大值:") print(top3_largest.to_list()) print("\nLake_Level后3小值:") print(top3_smallest.to_list())
注意事项
- 若你的日期字符串格式和示例不一致,需要调整
pd.to_datetime里的format参数,避免日期解析错误 - 代码默认支持处理空值,空值会在极值统计时自动忽略
内容的提问来源于stack exchange,提问作者Akvilė Liumparė
相关产品推荐
相关产品推荐

