首页 > 解决方案 > 使用标签行构建 pandas df 列

问题描述

如何将这样的 csv 构建转换为以“var”为列的 DF?

Date             var         bv    value
2000-01-01       Tmin        RO1   12
2000-01-01       Tmax        RO1   32
2000-01-01       Tmin        RO2   23
2000-01-01       Tmax        RO2   22
2000-01-02  ….

我预计:

Date             Tmin    Tmax    bv    
2000-01-01       12       32     RO1   
2000-01-01       23       22     RO2   
2000-01-02  ….

我尝试但使用 for 循环,我相信我们可以做更多 pythonic ......

标签: pandasdatetime

解决方案


IIUC,我们可以使用pd.crosstab

new_df = pd.crosstab(
    [df["Date"], df["bv"]], df["var"], values=df["value"], aggfunc=lambda x: x
).reset_index()

print(new_df[['Date','Tmin','Tmax','bv']])


var        Date  Tmin  Tmax   bv
0    2000-01-01    12    32  RO1
1    2000-01-01    23    22  RO2

推荐阅读