我只看到了与我在这里寻找的相反的帖子。使用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)。 谢谢
试试这个:
import pandas as pd
df = pd.read_csv('my-csv.csv')
new_df = df.set_index('Country').stack()
大熊猫的融化功能会做!!
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