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