如何汇总其值以1:1关系存储的列表或系列?

时间:2018-10-04 20:21:13

标签: python python-3.x pandas

我有一个看起来像这样的数据框:

            Col1            Col2

row1        A1               A2

row2        A2               A3

row3        A2               A4

row4        A3               A5

row5        B1               B2

row6        B2               A3

我需要确定Col1的值(它们永远不会显示为Col2的值)(我们将这些值称为MasterValues),并生成与MasterValue相关的所有值的列表或逗号分隔字符串。在此示例中,A1和B1将是MasterValues。

预期输出:

                Col1            Col2

row1            A1              A2,A3,A4,A5

row2            B1              B2,A3

请注意,有成千上万的行,并且某些值(例如本示例中的A3)用于多个MasterValue。还需要注意的重要一点是,在Col1中,很多值(包括本例中的A2)中多次出现(包括一些MasterValues)。

我想到的第一步是将DF按Col1分组。然后,我想循环并适当地追加Col2。我尝试了很多变化,这是我得到的最接近的变化:

DF = pandas.read_sql(command, connection)
DF2 = DF
DF = DF.groupby('col1', as_index=False).agg({col2: lambda x: ','.join(x)}))

for xrow in DF.itertuples():
    for yrow in DF2.itertuples():
        if yrow[1] in xrow[2]:
            DF.at[xrow[0], 'col2'] = DF.at[xrow[0], 'col2'] + ',' + yrow[2]

但是,这仍然不正确。我仍然最终在Col1中得到了一些不是MasterValues的值。我搜寻了,搜寻了,并且以为无济于事。任何人都可以帮助我围绕完成此工作所需的逻辑吗?

1 个答案:

答案 0 :(得分:0)

您要使用networkx吗?

FileOutputStream

输出:

@Override
protected void onDestroy() {
    super.onDestroy();
    recyclerView.setAdapter(null);
}