繁体   English   中英

熊猫数据框:将列中的日期转换为行中的值

[英]Pandas dataframe: turn date in column into value in row

我正在尝试打开以下数据框(具有县和年份的值)

county  region     2012  2013  ...  2035
A       101        10    15    ...  7
B       101        13    8     ...  11
...

变成如下所示的数据框:

county  region   year  sum
A       101      2012  10
A       101      2013  15
...     ...      ...   ...
A       101      2035  7
B       101      2012  13
B       101      2013  8
B       101      2035  11

我当前的数据框有400行(不同的县),其值是2012-2035年。

我的手动方法是将年份列切成片,然后将每一列放在上一年的最后一行下方。 但是,当然必须有一种Python方式。

我想我在这里缺少基本的熊猫概念,可能我只是找不到正确的答案,因为我根本不知道如何问正确的问题。 请对新来者保持温和。

您可以使用熊猫melt

In [26]: df
Out[26]:
  county  region  2012  2013
0      A     101    10    15
1      B     101    13     8

In [27]: pd.melt(df, id_vars=['county','region'], var_name='year', value_name='sum')
Out[27]:
  county  region  year  sum
0      A     101  2012   10
1      B     101  2012   13
2      A     101  2013   15
3      B     101  2013    8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM