如何将列表项附加到数据框中的特定列?

Posted

技术标签:

【中文标题】如何将列表项附加到数据框中的特定列?【英文标题】:How to append items of a list to specific columns in a dataframe? 【发布时间】:2019-12-30 17:33:51 【问题描述】:

假设我有一个包含 n 个项目的字符串列表,比如说:

    list1 = ['a','b',..'y','z']

我不想将整个列表附加到数据框(创建 n 列),我只想将第一项附加到第一列,将最后一项附加到最后一列,并将其间的所有内容合并到中间列。

我试过了

    df = pd.DataFrame(list1)

但这会为每个字符串项创建一个单独的列,从而产生 n 列

我希望输出是 3 列的数据框,例如:

         0       1        2
  0      a     b+c+d+..   z

请帮助一个菜鸟!

【问题讨论】:

【参考方案1】:

您可以分别解压缩列表的第一个值、中间值和结尾,并从这些值构造数据框:

a, *b, c = list1
pd.DataFrame([a, b, c]).T

   0             1  2
0  a  [b, c ... y]  z

如果您希望将 midde 中的项目连接成一个字符串,您可以这样做:

pd.DataFrame([a, ''.join(b), c]).T

   0     1     2
0  a  bcd...y  z

在这些情况下解包的一种简洁方法是使用Extended Iterable Unpacking,在这种情况下,它允许您“捕获”可迭代中的所有元素,具体取决于哪些其他元素也被单独分配。在这种情况下,b 将包含 ac 之间的所有元素。

【讨论】:

【参考方案2】:

好吧,你可以手动做:

a, *b, c = list1

df = pd.DataFrame([a, b, c]).T

   0                                                  1  2
0  a  [b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, ...  z

【讨论】:

@yatu 应该有一种——最好只有一种——明显的方法。+1 来自我 :)

以上是关于如何将列表项附加到数据框中的特定列?的主要内容,如果未能解决你的问题,请参考以下文章

将数据框中的值列表附加到新列[重复]

附加到熊猫数据框中的列表

如何将数据框中的特定列与同一数据框中的一个特定列相乘?

如何使用VBA隐藏多列列表框中的列

将数组列表作为列附加到具有相同列索引的熊猫数据框中

如何迭代数据列的每个单元格,转换和附加每个单元格?