我试图遍历一个元组列表,在每个元组的末尾添加一个值,该值对应于pandas数据框中列的值。
[(1, 2, 'a'), (4, 5, 'b'), (8, 9, 'c')]
我希望print(df3)显示以下内容:
settings.py
但是,我收到一条错误消息,指出要解压缩的值太多。
答案 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')]
或者您也可以将map
与operator.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')]