python更改行的列

问题描述 投票:0回答:2

我只看到了与我在这里寻找的相反的帖子。使用jupyter notebooks / python我已经从第一个块的csv文件导入了,我想要第二个块:

    Country | 1990 | 1991 | 1992 |
 ----------------------------------
  | Albania |   1.0 | 1.2 | 2.6 |
  | Algeria |   2.0 | 2.3 | 3.3 |
  | Andora  |   1.5 | 6.9 | 5.3 |


   Country   | Year | Value | 
 ------------------------------
  | Albania  | 1990 |  1.0  | 
  | Albania  | 1991 |  1.2  | 
  | Albania  | 1992 |  2.6  | 
  | Algeria  | 1990 |  2.0  | 
  | Algeria  | 1990 |  2.3  | 
  | Algeria  | 1990 |  3.3  | 
etc.

我是python的新手,我不确定如果我需要使用pandas,numpy和什么函数(pivot_table,re-index,interpolate)。 谢谢

python dataframe interpolation
2个回答
2
投票

试试这个:

import pandas as pd

df = pd.read_csv('my-csv.csv')
new_df = df.set_index('Country').stack()

1
投票

大熊猫的融化功能会做!!

import pandas as pd

df = pd.DataFrame({'Year': [1990 , 1991 , 1992], 'Albania': [1.0 , 1.2 , 2.6 ],'Algeria':[2.0,2.3,3.3],"Andora":[1.5,6.9,5.3]})



print df
          Albania  Algeria  Andora  Year
    0      1.0      2.0     1.5  1990
    1      1.2      2.3     6.9  1991
    2      2.6      3.3     5.3  1992

熔化重塑df相对于年!

melted = pd.melt(df, id_vars=["Year"],
                 var_name="Country", value_name="Score")
print melted

   Year  Country  Score
0  1990  Albania    1.0
1  1991  Albania    1.2
2  1992  Albania    2.6
3  1990  Algeria    2.0
4  1991  Algeria    2.3
5  1992  Algeria    3.3
6  1990   Andora    1.5
7  1991   Andora    6.9

8  1992   Andora    5.3

我已经搞砸了你的df,也可以为你的情况做同样的事情。更多关于融化 - > http://pandas.pydata.org/pandas-docs/stable/generated/pandas.melt.html

© www.soinside.com 2019 - 2024. All rights reserved.