【问题标题】:Create a new Column in Pandas DataFrame and populate the values from other columns [duplicate]在 Pandas DataFrame 中创建一个新列并填充其他列的值 [重复]
【发布时间】:2020-04-06 02:57:37
【问题描述】:

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

【问题讨论】:

  • 这看起来像熊猫melt。试试 df.melt('time')

标签: python pandas dataframe


【解决方案1】:

使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 2020-11-14
    • 2021-08-02
    • 2016-02-10
    • 2019-09-30
    • 2021-12-10
    • 2021-12-30
    相关资源
    最近更新 更多