在Python中,我具有以下数据框:
df_dict = {'time':[1,2,3],'a':['a1','a2','a3'],'b':['b1','b2','b3'], 'c':['c1','c2','c3']}
df = pd.DataFrame(df_dict)
df
time a b c
0 1 a1 b1 c1
1 2 a2 b2 c2
2 3 a3 b3 c3
我需要添加一个新列,该列从a,b,c列获取值,并变成这样:
time new_column values
0 1 a a1
1 2 a a2
2 3 a a3
3 1 b b1
4 2 b b2
5 3 b b3
6 1 c c1
7 2 c c2
8 3 c c3
基本上,“时间”列中的值是重复的。 我需要有关 Python 代码的帮助。这个动作的技术术语是什么? 非常感谢。
答案 0 :(得分:2)
使用df.melt
In [3]: df.melt(id_vars='time', value_vars=['a', 'b', 'c'])
Out[3]:
time variable value
0 1 a a1
1 2 a a2
2 3 a a3
3 1 b b1
4 2 b b2
5 3 b b3
6 1 c c1
7 2 c c2
8 3 c c3