如何将包含多组数据的CSV文件导入并生成不同的pandas DataFrame
处理方案
1 修正CSV读取逻辑,避免字段名丢失
你之前设置header=6时,若第7行(pandas行索引从0开始计数)的首个字段为空,就会导致nom du point distant字段名丢失,可通过手动指定列名的方式规避该问题,同时读取时自动处理时间格式:
import pandas as pd # 手动指定列名,保证字段不会丢失 col_list = ["nom du point distant", "Date", "Valeur"] data_adms = pd.read_csv( full_path, sep=";", skiprows=6, # 跳过前6行的文件说明内容 names=col_list, parse_dates=["Date"], # 读取时直接将Date列转为时间格式 infer_datetime_format=True, # 自动识别不同格式的时间戳 dayfirst=True # 若时间为日/月/年的欧洲格式,添加该参数避免解析错误 )
2 统一处理异常时间戳
如果仍存在时间解析失败的情况,用以下代码强制转换并清除无效数据:
# 无法解析的时间统一设为空值后删除 data_adms["Date"] = pd.to_datetime(data_adms["Date"], errors="coerce") data_adms = data_adms.dropna(subset=["Date"]) # 全局设置Date为索引 data_adms = data_adms.set_index("Date")
3 拆分生成三个独立DataFrame
按需求筛选对应点位数据即可:
target_vars = [ "BEL AIR - feeder_30 - MANGUIER", "BEL_TC_30_TR3_MW", "BEL AIR - feeder_30 - MTOA" ] # 生成字典存储三个DataFrame,可直接通过点位名取值 var_df = {} for var in target_vars: var_df[var] = data_adms.loc[data_adms["nom du point distant"] == var, ["Valeur"]].copy()
内容的提问来源于stack exchange,提问作者Thomas LESIEUR
相关产品推荐
相关产品推荐

