【问题标题】:Creating a Pandas DataFrame with a single vector column from a 2-d numpy array使用二维 numpy 数组中的单个向量列创建 Pandas DataFrame
【发布时间】:2022-01-22 11:09:33
【问题描述】:

我有一个 numpy 二维数组:

arr = [
  [10, 20],
  [30, 40]
]

使用 pd.DataFrame(arr) 将其转换为 pandas 数据框给我:

    0  1
0  10 20
1  30 40

我正在寻找这样的东西:

          0
0  [10, 20]
1  [30, 40]

我可以使用

df.agg(lambda x: np.array(x), axis="columns")

df.agg(lambda x: [y for y in x], axis="columns")

但是有没有更好的方法来首先使用单列数据框?

【问题讨论】:

  • df.agg 给你一个系列,不是吗?
  • 不要问附带问题。相反,如果您真的想知道,请提出一个新的 SO 问题。这里的问题实际上可以关闭“需要更多关注:这个问题包含多个问题。......”;)

标签: python pandas numpy


【解决方案1】:

您可以先将其转换为list,然后先转换为Series,最后转换为DataFrame

df = pd.DataFrame(pd.Series(arr.tolist()))

或者,如@QuangHoang suggested

df = pd.Series(arr.tolist()).to_frame()

输出:

>>> df
          0
0  [10, 20]
1  [30, 40]

【讨论】:

  • 也许pd.Series(arr).to_frame() 也是如此。
猜你喜欢
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-16
相关资源
最近更新 更多