【问题标题】:create multiple columns from 1 column pandas从 1 列 pandas 创建多列
【发布时间】:2016-05-18 16:32:53
【问题描述】:

我试图从 df 中多次复制一列,例如

df.head()

                      close
date                       
2015-09-23 17:00:00  1.3324
2015-09-23 17:01:00  1.3325
2015-09-23 17:02:00  1.3323
2015-09-23 17:03:00  1.3323
2015-09-23 17:04:00  1.3323

从某个名称列表中,我想复制该列的次数与列表中的名称一样多:

list =['a','b','c']

得到

  df.head()

                      close    a     b      c
date                       
2015-09-23 17:00:00  1.3324 1.3324 1.3324 1.3324
2015-09-23 17:01:00  1.3325 1.3325 1.3325 1.3325
2015-09-23 17:02:00  1.3323 1.3323 1.3323 1.3323
2015-09-23 17:03:00  1.3323 1.3323 1.3323 1.3323
2015-09-23 17:04:00  1.3323 1.3323 1.3323 1.3323

我试过了

df[list] = df

但列的长度必须与键的长度相同。感谢您的帮助!

【问题讨论】:

    标签: python pandas multiple-columns


    【解决方案1】:

    最简单的方法是遍历您的列表并为每个键创建一个新列(旁注:您应该避免使用 list 作为变量的名称,因为您将覆盖本机 list ):

    keys = ['a','b','c']
    for k in keys:
        df[k] = df['close']
    

    如果您想在一行中执行此操作,而无需循环,您可以执行以下操作:

    keys = ['a','b','c']
    df = df.join(pd.concat([df.close]*len(keys), keys=keys))
    

    从中间向外移动,[df.close]*len(keys) 创建一个列表,其中包含与列表中的键一样多的原始数据框列的副本。然后使用pd.concat() 将它们组合成一个数据框,并使用您的列表 (keys=keys) 设置列名。现在您有了一个包含重复列的数据框,您可以使用 df.join() 将其添加到原始数据框。

    【讨论】:

    • 你这个工作很好,谢谢!我试图远离循环,但我想我会使用这个:) 关于列表:记好谢谢!
    【解决方案2】:

    你可以使用concat:

    li = ['a','b','c']
    
    df1 = pd.concat([df['close']]*(len(li)+1), axis=1, keys=['close'] + li)
    print (df1)
                          close       a       b       c
    date                                               
    2015-09-23 17:00:00  1.3324  1.3324  1.3324  1.3324
    2015-09-23 17:01:00  1.3325  1.3325  1.3325  1.3325
    2015-09-23 17:02:00  1.3323  1.3323  1.3323  1.3323
    2015-09-23 17:03:00  1.3323  1.3323  1.3323  1.3323
    2015-09-23 17:04:00  1.3323  1.3323  1.3323  1.3323
    

    【讨论】:

      猜你喜欢
      • 2018-04-04
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 2015-03-09
      相关资源
      最近更新 更多