合并多个列表中包含的数据

缺口

我正在python 3.6中进行个人项目。我使用熊猫从数据框中的excel文件导入数据,然后将数据提取到多个列表中。

现在,我将举一个例子来确切说明我要实现的目标。因此,我假设有3个输入列表a,b和c(我确实在列表中插入了索引和一些其他空格,因此更容易理解):

   0  1      2     3        4      5    6  

a=[1, 5,     6, [10,12,13], 1,   [5,3] ,7]

b=[3, [1,2], 3,  [5,6],   [1,3], [5,6], 9]

c=[1, 0 ,    4,  [1,2],     2  ,  8   , 9]

我试图合并数据以便在其中一个列表中有一个包含多个元素的列表时获得所有组合。所以输出需要像这样:

   0  1  2  3   4  5  6   7   8   9   10 11    12  13  14  15  16 17 18 19 20 21 22

a=[1, 5, 5, 6, 10,10,10, 10, 12, 12, 12, 12,   13, 13, 13, 13, 1, 1, 5, 5, 3, 3, 7]

b=[3, 1, 2, 3,  5, 5, 6,  6, 5,  5,  6,  6,    5,   5,  6,  6, 1, 3, 5, 6, 5, 6, 9]

c=[1, 0, 0, 4,  1, 2, 1,  2, 1,  2,  1,  2,    1,   2,  1,  2, 2, 2, 8, 8, 8, 8, 9]

为了更清楚一点:

从原始列表来看,如果我们看一下索引1元素:a [1] = 5,b [1] = [1,2],c [1] = 0。它们在1和2索引位置上转换为以下值:a [1:3] = [5,5]; b [1:3] = [1,2]; c [1:3] = [0,0]

这也需要应用于原始输入列表中的索引3、4和5,以获得与上述示例输出类似的内容。

我希望能够将其推广到更多列表(a,b,c ..... n)。我已经能够针对两个列表执行此操作,但是以一种完全不雅致,绝对不是pythonic的方式进行。另外,我认为我编写的代码无法推广到更多列表。

我正在寻找帮助,至少需要一些阅读材料的指导,这些材料可以帮助我实现上面介绍的内容。

谢谢!

chitown88

你可以做这样的事情。查看每一列,计算出组合,然后输出列表:

import pandas as pd
import numpy

a=[1, 5,     6, [10,12,13], 1,   [5,3] ,7]
b=[3, [1,2], 3,  [5,6],   [1,3], [5,6], 9]
c=[1, 0 ,    4,  [1,2],     2  ,  8   , 9]

df = pd.DataFrame([a,b,c])

final_df = pd.DataFrame()
i=0
for col in df.columns:
    temp_df = pd.DataFrame(df[col])
    get_combo = []
    for idx, row in temp_df.iterrows():
        get_combo.append([row[i]])

    combo_list = [list(x) for x in numpy.array(numpy.meshgrid(*get_combo)).T.reshape(-1,len(get_combo))]
    temp_df_alpha = pd.DataFrame(combo_list).T
    i+=1   
    if len(final_df) == 0:
        final_df = temp_df_alpha
    else:
       final_df = pd.concat([final_df, temp_df_alpha], axis=1, sort=False) 


for idx, row in final_df.iterrows():
    print (row.tolist())

输出:

[1, 5, 5, 6, 10, 10, 12, 12, 13, 13, 10, 10, 12, 12, 13, 13, 1, 1, 5, 5, 3, 3, 7]
[3, 1, 2, 3, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 1, 3, 5, 6, 5, 6, 9]
[1, 0, 0, 4, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 9]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

合并多个列表中的Java

在1个列表中合并多个列表

同时合并列表中的多个数据框

如何合并列表[R]中包含的不同大小的数据帧的元素?

合并数据框列表中的数据框

Java-将多个列表数据合并到一个单独的列列表中

将包含字典列表的列转换为pandas数据框中的多个列

Pandas将具有多个值的行数据合并到列的Python列表中

合并多个列表中的信息

合并包含字典列表的字典列表中的值

如何从包含来自多个来源的多个词典的列表中创建数据框

将多个列表合并到ggpot2的数据框中

合并列表是将熊猫数据帧的多个列合并为一个列中的单个列表

在熊猫中合并多个数据框

迭代地将多个列之一合并到列表中的数据框

合并不同列表中的多个数据框

合并列表中包含通用列的所有数据框

如何对包含来自多个数据的变量列表的列表中的每个对象进行排序

如何合并R中包含列表值的2个不同数据框

如何在python中合并多个列表?

在Python中合并多个列表中的字典

如何在jQuery中读取JSON数据(数据集包含多个表)以一次绑定多个下拉列表

执行包含多个列表的扩展合并排序

如何从包含在 r 中的列表中的数据帧合并行

如何从包含 R 中数据框列表的列表创建多个图

如何使用 Scala 在一个列表中合并多个 spark 数据框列?

如何将包含多个字典的列表扩展到数据框中?

在 R 中合并多个数据帧

使用列表中包含的数据框名称连接多个现有数据框