python - 根据时间戳将列拆分为行
问题描述
所以我有这个数据框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
有人可以帮助我了解这种数据处理的逻辑吗?谢谢你
解决方案
请pd.melt
pd.melt(df,id_vars=['time'], value_vars=['newyork','Amsterdam'],var_name='city', value_name='number')
推荐阅读
- python - 如何设置 cog 并将其加载到 discord.py 中?
- eiffel - 埃菲尔的退出程序
- c - 在C中打印帕斯卡的三角形
- sql-server - sqlsrv_fetch_array() 期望参数 1 是资源,给定对象
- python-3.x - 从十进制列表中提取数字
- swiftui - 如何在 DatePicker 中选择用户无法选择的某些日期?
- c# - 多选列表项覆盖而不是添加
- fish - 在鱼壳中,为什么一个函数的输出不能连接到另一个函数?
- python-3.x - 名称'count'未在python中定义
- c++ - 当我给出特定目标时,Clang 编译器找不到 C/C++ 标准库,尽管它可以在没有给出目标的情况下工作