【问题标题】:How to assign a list to existing column of Pandas Data Frame?如何将列表分配给 Pandas 数据框的现有列?
【发布时间】:2013-11-15 17:43:04
【问题描述】:

我应用一些函数并为 Pandas 数据框的现有列生成一个新列值。但是df['col1'] = new_list 无法将新列表分配给该列。这是错误的方法吗?应用这种操作的准确方法是什么?

【问题讨论】:

  • df 是字典吗?你收到错误还是什么?请发布更多详细信息。
  • 我猜 df 是 Pandas 的 DataFrame,正如问题的标题和文本所示。
  • 当你说它“不起作用”时,你能澄清一下究竟是什么不起作用,例如一个示例和完整的堆栈跟踪。看起来应该可以了。
  • 是的,它应该可以工作,你能发布一些示例数据和错误

标签: python pandas


【解决方案1】:

如果列表的长度等于 DataFrame 中的行数,它应该可以工作

>>> df = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6]})
>>> df['C'] = [10,20,30]
>>> df
   A  B   C
0  1  4  10
1  2  5  20
2  3  6  30

如果您的列表比 DataFrame 短或长,那么您将收到错误 Length of values does not match length of index

【讨论】:

  • 您并没有在示例中重新分配列,而只是向其中添加了一个新列。
  • 是的,但是,如果在第一行中定义了“C”(具有不同的值),也可以使用。
  • 有没有办法用missingnanNan 或其他东西填充?
【解决方案2】:

我认为这个问题正在寻找类似的东西。

new_list = [1,2,3]

    col1
0  [1,2,3]
1  [1,2,3]
2  [1,2,3]

我想我在这里找到了答案:

how to assign an entire list to each row of a pandas dataframe

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 2016-05-20
    • 2021-12-04
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    相关资源
    最近更新 更多