Python 如何在保持索引不变的情况下基于列创建新行?

Python 如何在保持索引不变的情况下基于列创建新行?,python,pandas,Python,Pandas,我有一个与此类似的数据帧: 我想创建这个数据框: 我尝试使用df.melt()和df.transpose()实现此功能,但没有成功。有人对此有什么建议吗?我尝试了我在这里找到的一些解决方案,但我想这个问题与它们略有不同。您可以使用pd\u-wide\u-to\u-long() 谢谢“没错,现在成功了,”亨利克说。但是,id、Name和City列只出现一次,我需要所有行都填充这些重复值。使用reset\u index()@goosfrabah谢谢大家!这是一个优雅的解决方案! df = pd.

我有一个与此类似的数据帧:

我想创建这个数据框:


我尝试使用
df.melt()
df.transpose()
实现此功能,但没有成功。有人对此有什么建议吗?我尝试了我在这里找到的一些解决方案,但我想这个问题与它们略有不同。

您可以使用
pd\u-wide\u-to\u-long()


谢谢“没错,现在成功了,”亨利克说。但是,
id
Name
City
列只出现一次,我需要所有行都填充这些重复值。使用
reset\u index()
@goosfrabah谢谢大家!这是一个优雅的解决方案!
df = pd.wide_to_long(df,
    stubnames='month',
    i=['id', 'Name', 'City'],
    j='month_num',
    sep='_').rename(columns = {'month':'month_value' ,'month_num': 'month'}).reset_index()