python更改行的列

时间:2018-07-25 13:47:57

标签: python dataframe interpolation

我只看到过与我在这里寻找的内容相反的帖子。使用jupyter笔记本/ 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,重新索引,内插)。
谢谢

2 个答案:

答案 0 :(得分:2)

尝试一下:

import pandas as pd

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

答案 1 :(得分: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

与Years融合重塑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