我有以下Pandas 数据框:

city,temp,real_feel
Los Angeles,0.97,-4.05
London,2.34,-3.18
Amsterdam,6.05,1.63
Rome,4.59,1.29
Lisabon,15.48,15.15
Berlin,2.38,-1.65

我在try 一些关键的 Select ,但我不能让它发挥作用. 如何将其转换为此形状:

city,type,value
Los Angeles,temp,0.97
Los Angeles,real_feel,-4.05
London,temp,,2.34
London,real_feel,-3.18
Amsterdam,temp,6.05
Amsterdam,real_feel,1.63
Rome,temp,4.59
Rome,real_feel,1.29
Lisabon,temp,15.48
Lisabon,real_feel,15.15
Berlin,temp,2.38
Berlin,real_feel,-1.65

推荐答案

没有融化

new_df = df.rename_axis(columns='type').set_index('city')\
           .stack().reset_index(name='value')



           city       type  value
0   Los Angeles       temp   0.97
1   Los Angeles  real_feel  -4.05
2        London       temp   2.34
3        London  real_feel  -3.18
4     Amsterdam       temp   6.05
5     Amsterdam  real_feel   1.63
6          Rome       temp   4.59
7          Rome  real_feel   1.29
8       Lisabon       temp  15.48
9       Lisabon  real_feel  15.15
10       Berlin       temp   2.38
11       Berlin  real_feel  -1.65

如果您使用MELET,则可以传递ignore_index=False,以便在使用SORT_INDEX对熔化后的新数据帧进行排序(如果您没有传递IGNORE_INDEX=FALSE DataFrame.MELET将创建一个新索引,您将丢失原始索引,因此您将无法使用).我们在SORT_INDEX中传递IGNORE_INDEX=True,以按原始索引对行进行排序,但创建新的范围索引(0,1,2,.)

new_df = df.melt('city', var_name='type', ignore_index=False)\
           .sort_index(ignore_index=True)
print(new_df)


           city       type  value
0   Los Angeles       temp   0.97
1   Los Angeles  real_feel  -4.05
2        London       temp   2.34
3        London  real_feel  -3.18
4     Amsterdam       temp   6.05
5     Amsterdam  real_feel   1.63
6          Rome       temp   4.59
7          Rome  real_feel   1.29
8       Lisabon       temp  15.48
9       Lisabon  real_feel  15.15
10       Berlin       temp   2.38
11       Berlin  real_feel  -1.65

Python-3.x相关问答推荐

像计数不显示在html和想知道如果我的模型设置正确

以编程方式关闭jupyterlab内核

当条件第一次出现时将行标记为True,如果按顺序重复则标记为False

如何在 python 中将带有时区信息的时间戳转换为 utc 时间

如何使用python将pdf文件的页面合并为单个垂直组合页面

三重奏:为什么频道被记录为使用async with,而不是with?

asyncio.as_completed() 应该接受 `Iterable`,但如果输入是 `Generator` 就会崩溃?

!date 的命令无法从 jupyter notebook 运行

位对的距离

类型提示和链式赋值以及多重赋值

在带有 M1 芯片(基于 ARM 的 Apple Silicon)的 Mac 上安装较早版本的 Python(3.8 之前)失败

Tkinter 窗口显示(无响应)但代码正在运行

如何为 Python 中的线程设置异步事件循环?

为 python3 安装 opencv

Python 3x 的最佳机器学习包?

Pylint 给我最后的新行丢失

发送Electron邮件时的 MIMEText UTF-8 编码问题

为现有项目创建virtualenv

调用 Python doctest 时如何启用省略号?

如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签