在Pandas DataFrame中创建一个新列,并填充其他列中的值

时间:2020-04-06 02:57:37

标签: python pandas dataframe

在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 代码的帮助。这个动作的技术术语是什么? 非常感谢。

1 个答案:

答案 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