如何在R中按日期和站点实现数据框的行列转置
解决方法
1. 数据读取阶段避免表头丢失
读取文件时明确指定第一行为表头,关闭列名自动推断逻辑,即使列数很多也能正确识别全部表头:
import pandas as pd # 如果是csv格式文件,header=0指定第一行为表头,parse_dates=False避免日期列名被自动转格式 df = pd.read_csv("你的数据文件路径.csv", header=0, parse_dates=False, encoding="utf-8")
2. 宽表转长表实现格式转换
直接调用pandas内置的melt方法,不需要手动枚举日期列,所有日期列会自动转为行,支持任意数量的日期列:
# id_vars参数填写不需要转换的固定列,剩余列自动按日期展开 df_res = df.melt( id_vars=["STATION", "Latitude", "Longitude"], var_name="Date", value_name="Values" ) # 调整列顺序匹配你需要的输出格式,如果需要修正Longitude拼写可以同步修改 df_res = df_res[["Date", "STATION", "Latitude", "Longitude", "Values"]] # 可选:如果需要把数值中的逗号替换为小数点并转为数值格式 df_res["Values"] = df_res["Values"].str.replace(",", ".").astype(float)
运行后得到的df_res就是你需要的目标格式。
内容的提问来源于stack exchange,提问作者dudpant
相关产品推荐
相关产品推荐

