【问题标题】:Adding an np.array as a column in a pandas.DataFrame将 np.array 添加为 pandas.DataFrame 中的列
【发布时间】:2015-09-15 04:05:12
【问题描述】:

我有一个 pandas 数据框和一个一维的 numpy nd 数组。实际上它是一个列表。

如何使用数组中的值向 DataFrame 添加新列?

test['preds'] = predsSettingWithCopyWarning 还有一个警告:

试图在 DataFrame 的切片副本上设置一个值。 尝试改用 .loc[row_indexer,col_indexer] = value

当我尝试pd.DataFrame({test,preds}) 我得到TypeError: unhashable type: 'list'

【问题讨论】:

  • 你原来的df是什么?如果test 已经是一个df,那么test['preds']=preds 就可以了。
  • 要回答SettingWithCopyWarning,您需要发布您的原始DataFrame

标签: python arrays numpy pandas


【解决方案1】:

感谢 EdChum,问题是这样的

test= DataFrame(test)
test['preds']=preds

有效!

【讨论】:

  • 我收到此警告:A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead
【解决方案2】:

这不是 pandas 错误,这是因为您试图用两个列表实例化一个集合。

{test,preds}
#TypeError: unhashable type: 'list'

一个集合是一个容器,它需要它的所有内容都是可散列的,因为集合可能不会包含两次相同的元素。

话虽如此,给熊猫一组并不能达到你想要的结果。

但是,给 pandas 一个 dict 会起作用,如下所示:

pd.DataFrame({"test":test,"preds":preds})

【讨论】:

    猜你喜欢
    • 2021-03-06
    • 1970-01-01
    • 2021-05-05
    • 2021-12-29
    • 2018-08-08
    • 1970-01-01
    • 2022-01-06
    • 2018-11-01
    相关资源
    最近更新 更多