微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将列表中的元素逐个附加到数据框中的嵌套列表中

import pandas as pd

d = {'A': [1,2,3,4], 'B': [[[1,2],[2,3]],[[3,4],[2,5]],[[5,6],[5,6],[5,6]],[7,8]]}

df = pd.DataFrame(data=d)

C = [1,2,3,4,5,6,7,8]

我有一个pandas数据帧,并希望将C列表的每个元素附加到B的每个嵌套列表中,维护结构,以便生成的数据帧为:

'A': [1,2,3,4]
'B': [[[1,2,1],[2,3,2]],[[3,4,3],[2,5,4]],[[5,6,5],[5,6,6],[5,6,7]],[7,8,8]]

解决方法:

Mybe有一个更优雅的解决方案,但这有效:-)

for i in d['B']:
    for j in i:
        if (isinstance(j, list)):
            j.append(C.pop(0))
        else:
            i.append(C.pop(0))
            break

基于timgebs评论的更有效的解决方案(谢谢!):

f = iter(C)
for i in d['B']:
    for j in i:
        if (isinstance(j, list)):
            j.append(next(f))
        else:
            i.append(next(f))
            break

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐