Python 如何转置这个数据帧?

Python 如何转置这个数据帧?,python,pandas,Python,Pandas,我有这个数据框: columns= ['1972 [YR1972]', '1973 [YR1973]', '2007 [YR2007]', 'Country Name', 'Series Code'] index = np.arange(10) # array of numbers for the number of samples df = pd.DataFrame(columns=columns, index = index) 由于大约有220个国家和1000个系列代码,因此基本

我有这个数据框:

columns= ['1972 [YR1972]',
 '1973 [YR1973]',
 '2007 [YR2007]',
 'Country Name',
 'Series Code']

index = np.arange(10) # array of numbers for the number of samples
df = pd.DataFrame(columns=columns, index = index)
由于大约有220个国家和1000个系列代码,因此基本上有大约100000行

不幸的是,这个结构并不是我真正喜欢的-我想把整个事情转置,这样我就有了系列代码作为列,一年列和一个国家列-而值在行中。我想我应该使用pivot函数,但结果并不是我所期望的。 有人能指导我如何用熊猫来实现这一点吗

结果应该如下所示:

columns= ['Year', 'Country', 'SeriesCode1', 'SeriesCodeN']

index = np.arange(6) # array of numbers for the number of samples
df = pd.DataFrame(columns=columns, index = index)
df['Year'] = ['1972 [YR1972]', '1973 [YR1973]', '2007 [YR2007]']*2
df['Country'] = ["Afghanistan"] *3 + [ "Zimbabwe"]*3

如果我没弄错你的问题,你可以用这个

您所需要的只是:
pd.melt(df,id\u vars=['Country Name','Series code'],var\u Name='Year',value\u Name='your\u values')

它将为您平展数据。

您能展示一下所需的输出吗?像索引,列,…@Anzel我添加了一个例子,它有帮助吗?这有助于理解您想要的输出是什么样子的。但是仍然不确定您想对数据做什么,即sum?计数如果您有一组可复制的数据样本+所需的输出(来自样本),则会更好。@Anzel不需要求和或聚合,因为单元格的数量应该相同-只需将行转换为列,反之亦然。当我到家的时候,我会努力准备一个更好的例子!谢谢