根据一列转置CSV

时间:2018-11-13 16:23:05

标签: python pandas csv transpose

我看到了很多转换数据的示例,但没有类似的例子。我正在尝试转置看起来像-

的csv数据
Region,1989,1900,2000
new york,3,4,5
atlanta,7,9,0
chicago,8,9,10

Region,Year,value
new york,1989,3
new york,1900,4
new york,2000,5
atlanta,1989,7
atlanta,1900,9
atlanta,2000,0

1 个答案:

答案 0 :(得分:0)

您正在尝试从宽数据格式转换为长数据格式。可以使用melt函数来完成。如果您有一些需要删除的列,则可以将数据框切片为感兴趣的列。

代码:

#creating df
df = pd.DataFrame(data = {'Region':['new york', 'atlanta', 'chicago'], '1989': [3,7,8], '1900': [4,9,9], '2000': [5,0,10]})

#converting to long format
long_df = pd.melt(df, id_vars=['Region'], value_vars=['1989', '1900', '2000'], var_name='year', value_name = 'value')

输出:

enter image description here