Python遍历元组列表,从pandas数据框中添加一个值

时间:2020-02-20 13:56:27

标签: python python-3.x pandas tuples

我试图遍历一个元组列表,在每个元组的末尾添加一个值,该值对应于pandas数据框中列的值。

[(1, 2, 'a'), (4, 5, 'b'), (8, 9, 'c')]

我希望print(df3)显示以下内容:

settings.py

但是,我收到一条错误消息,指出要解压缩的值太多。

2 个答案:

答案 0 :(得分:2)

使用zip,列出理解解决方案:

df3 = [j + (i,) for i,j in zip(df2["Beta"], df1)]

您的解决方案应更改:

for i,j in zip(df2["Beta"], df1):
    j = j + (i,)
    df3.append(j)

print(df3)
[(1, 2, 'a'), (4, 5, 'b'), (8, 9, 'c')] 

答案 1 :(得分:1)

使用列表推导的一种方法是:

[(*i, j) for i, j in zip(df1,  df2.Beta)]
# [(1, 2, 'a'), (4, 5, 'b'), (8, 9, 'c')]

或者您也可以将mapoperator.add

from operator import add
list(map(add, df1, df2.Beta.map(tuple)))
# [(1, 2, 'a'), (4, 5, 'b'), (8, 9, 'c')]

或者在熊猫那里工作:

(pd.Series(df1) + df2.Beta.map(tuple)).values.tolist()
# [(1, 2, 'a'), (4, 5, 'b'), (8, 9, 'c')]