【问题标题】:Create a new pandas dataframe from a python list of lists with a column with lists从带有列表的列的 python 列表创建一个新的熊猫数据框
【发布时间】:2018-03-29 07:05:19
【问题描述】:

我有一个 python 列表列表,例如[["chunky","bacon","foxes"],["dr_cham"],["organ","instructor"],...] 并想创建一个 pandas 数据框,其中一列包含列表:

 0 ["chunky","bacon","foxes"] 
 1 ["dr_cham"] 
 2 ["organ","instructor"] .
 . .

std构造函数(l是这里的列表)

pd.DataFrame(l)

在这种情况下返回一个包含 3 列的数据框。

这将如何工作?我敢肯定这很简单,但我一直在寻找解决方案,但由于一些晦涩的原因无法弄清楚。

谢谢, B.

【问题讨论】:

  • 关于您的列表名称,您可能想阅读this

标签: python pandas


【解决方案1】:

下面的代码应该可以实现你想要的:

import pandas as pd

l = [["hello", "goodbye"], ["cat", "dog"]]

# Replace "lists" with whatever you want to name the column
df = pd.DataFrame({"lists": l})

打印df后,我们得到

              lists
0  [hello, goodbye]
1        [cat, dog]

希望这会有所帮助——如果我能澄清任何事情,请告诉我!

【讨论】:

  • 我同意,使用字典是最好的方法。
  • 感谢一百万,这正是我想要的!
  • 乐于帮助@user3379621!
  • 如何创建一个 Pandas df,其中列表的所有元素也位于不同的列中? @PeterDolan例如,从OP的原始问题本身来看,我希望hello在第1列和goodbye在第2列。对于第二行,cat在第1列,dog在第2列跨度>
  • 我做到了,@Peter Dolan 和我得到了满意的答案。干杯!
【解决方案2】:

这种模式很少是一个好主意并且违背了 Pandas 的目的,但是如果你有一些不寻常的用例需要它,你可以通过在主列表中进一步嵌套你的内部列表来实现它,然后从中创建一个 DataFrame:

l = [[x] for x in l]
df = pd.DataFrame(l)

                        0
0  [chunky, bacon, foxes]
1               [dr_cham]
2     [organ, instructor]

【讨论】:

  • 我知道,但这是一个非常具体的问题。
猜你喜欢
  • 2017-08-27
  • 2021-04-06
  • 1970-01-01
  • 2023-01-14
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 2020-09-21
相关资源
最近更新 更多