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不需要求和或聚合,因为单元格的数量应该相同-只需将行转换为列,反之亦然。当我到家的时候,我会努力准备一个更好的例子!谢谢