如何将列表项附加到数据框中的特定列?
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
将包含 a
和 c
之间的所有元素。
【讨论】:
【参考方案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 来自我 :)以上是关于如何将列表项附加到数据框中的特定列?的主要内容,如果未能解决你的问题,请参考以下文章