首页 > 解决方案 > 根据时间戳将列拆分为行

问题描述

所以我有这个数据框df,每个城市列的时间戳和数值:

time          new york     Amsterdam
2020-10-01    24           12
2020-10-02    31           21
2020-10-03    10           23

我想为每个时间戳将城市列拆分为行,就像这样:

time          city       number
2020-10-01    new york     24
2020-10-02    new york     31
2020-10-03    new york     10
2020-10-01    Amsterdam    12
2020-10-02    Amsterdam    21
2020-10-03    Amsterdam    23

我试图像这样转置数据帧 df :

df= df.T
df= df.reset_index()
new_header = df.iloc[0]
df= df[1:]
df.columns=new_header

但相反,我得到了df的结果,如下所示:

city      2020-10-01   2020-10-02   2020-10-03
new york      24         31             10
Amsterdam     12         21             23

有人可以帮助我了解这种数据处理的逻辑吗?谢谢你

标签: pythonpandasdataframe

解决方案


pd.melt

pd.melt(df,id_vars=['time'], value_vars=['newyork','Amsterdam'],var_name='city', value_name='number')

推荐阅读