如何转置此数据框?

时间:2014-11-05 13:54:21

标签: 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)

基本上有大约100.000行,因为大约有220个国家和1000个系列代码。

不幸的是,这个结构并不是我真正喜欢的 - 我想转换整个事情,以便我将系列代码作为列,年份列和国家列 - 而值是在行中。我想我应该使用枢轴功能,但结果不是我的预期。 有人可以指导我如何用熊猫实现这一目标吗?

结果应如下所示:

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

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您可以使用pd.melt()执行此操作。

您需要的只是: pd.melt(df, id_vars=['Country Name', 'Series Code'], var_name='Year', value_name='your_values') 它会为你弄平数据。