【问题标题】:adding lists to dataframe将列表添加到数据框
【发布时间】:2019-06-23 22:06:29
【问题描述】:

我有以下df:

A   B   C
1  NaN NaN 
2  NaN NaN
3  NaN NaN
4  NaN NaN

我想要这个:

A   B         C
1  'Blue'   'Purple'
2  'Yellow' 'Yellow'   
3  'Green'  'Orange'  
4  'Blue'   'Brown'

我试图做的事情:

df1.B = ['蓝色','黄色','绿色','蓝色']
df1.C = ['紫色','黄色','橙色','棕色']

但我收到以下错误:
ValueError:值的长度与索引的长度不匹配

但列表中的颜色数量与 df 中的颜色数量相同。

请帮忙。

【问题讨论】:

  • 您使用的是什么版本的熊猫 - 我无法重复您的问题。
  • 你对len(df.index)df.shape[0] 有什么看法?

标签: python pandas


【解决方案1】:

数据框中的列是 Series 对象,所以你想要

 df['B'] = pd.Series( ['Blue', 'Yellow', 'Green', 'Blue'])

【讨论】:

    【解决方案2】:

    你可以试试:

    df1 = df1.assign(B=pd.Series(['Blue', 'Yellow', 'Green', 'Blue']).values)
    

    还有关于这篇文章的更多信息: Adding new column to existing DataFrame in Python pandas

    【讨论】:

      【解决方案3】:

      如果您要分配给列 B 和 C 的列表长度等于数据框中的行数,那么您可以直接分配列表如下:

      df['B'] = ['Blue', 'Yellow', 'Green', 'Blue']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-05
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        • 2017-03-03
        • 2017-06-16
        相关资源
        最近更新 更多