从列表列表中提取元素并将其分配为熊猫数据框列中的值

Posted

技术标签:

【中文标题】从列表列表中提取元素并将其分配为熊猫数据框列中的值【英文标题】:Extract elements from a list of lists and assign that as a value in a pandas data frame column 【发布时间】:2016-12-01 21:02:28 【问题描述】:

我有一个生成的列表列表如下:

input = ['a','b','c','d','e','f','g']
siglist = sum([map(list, combinations(input, i)) for i in range(len(input) + 1)], [])

print siglist[25]
    ['d', 'g']

现在,我想在现有数据框 df 中创建一个“新”列,如下所示

color   location    type    new
blue    TX          MATTE   [d,g]
black   NA          GLOSS   [d,g]
red     UT          MATTE   [d,g]
orange  UT          GLOSS   [d,g]
white   WA          MATTE   [d,g]

我希望像下面这样的东西会起作用;

df['new'] = (siglist[25])[:]

但是,我收到一个错误:ValueError: Length of values does not match length of index 任何人都可以帮忙,这里做错了什么。

【问题讨论】:

【参考方案1】:

尝试使用apply通过loc分配

df.loc[:, 'new'] = df.apply(lambda x: (siglist[25])[:], axis=1)

【讨论】:

以上是关于从列表列表中提取元素并将其分配为熊猫数据框列中的值的主要内容,如果未能解决你的问题,请参考以下文章

熊猫数据框列中的成员资格测试

python:从熊猫中的数据框生成的列表比数据框列长得多

如何从熊猫数据框中的列中删除字符串值

根据其他列值从数据框列中的列表中删除最后一个元素

熊猫从数据框中的一列中提取部分字符串并将其存储在一个新列中

熊猫数据框列上的子字符串