在Python中将循环输出与列表一起保存到字典中

2024-09-27 00:18:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在两列中有一些点代码,我正在寻找它们之间的路径。 例如:

COL_A         COL_B
B1011         B1012
B1012         B1014
B1013         B2017
B1014         B1018
...
B1018         B2022

对于他们中的每一个我都需要一条从第一条到最后一条的路径(没有中断)。例如,对于B1011,它将是B1012、B1014、B1018、…B2022。 我写了一个代码,它遍历所有的值并把它放在列表中,但在那个版本中,我需要输入点代码的字符串。 现在我需要将其自动化并将dictionary作为输出返回。 例如 {'B1011':['B1012','B1014','B1018',…'B2022']。。。}在

我有代码:

^{pr2}$

如何为dataframe中的每一行以{COL_A:list_for_output}的形式将输出添加到字典中? 谢谢。 期望输出:

    {'B1011' : ['B1012', 'B1014', 'B1018', ...'B2022'], 
     'B1012': ['B1014', 'B1018', ...'B2022'], 
     'B1014':['B1018', ...'B2022'],
     'B1013':['B2017'],... }

Tags: 字符串代码路径版本列表dictionarycolpr2
2条回答

尝试修改此代码

import pandas as pd
from collections import defaultdict

df = pd.DataFrame({'COL_A': ['B1011','B1012','B1013','B1014','B1015','B1018'],
                  'COL_B': ['B1012','B1014','B2017','B1018','B2021','B2022']})

a= df.groupby(['COL_A']).apply(lambda grp: grp.COL_B.to_dict()).to_dict()
print (a)

结果

^{pr2}$

这不是一个精确的解决方案,但它只是一个例子,告诉你方向。在

使用递归方法:

import pandas as pd
from collections import defaultdict

df = pd.DataFrame({'COL_A': ['B1011','B1012','B1013','B1014','B1015','B1018'],
                  'COL_B': ['B1012','B1014','B2017','B1018','B2021','B2022']})

a=[i for i in df['COL_A']]
b=[i for i in df['COL_B']]

final_result=[]
def main_function(bn):
    dict_1={}


    path = []

    if not bn:
        return 0
    else:
        value_2 = []
        def hello(a_, b_, c):



            if not c:
                return 0
            else:

                aa = a_[c[0]]


                bb = b_[c[0]]

                if bb in a_:
                    value = []
                    value.append(aa)
                    if bb not in path:
                        path.append(bb)
                    bn = a_.index(bb)

                    cn = b_[bn]

                    if cn not in path:
                        path.append(cn)

                    value_2.extend(value)





                    return hello(a_, b_, c[1:])


                else:

                    if "{}".format({aa:bb}) not in final_result:
                        final_result.append("{}".format({aa:bb}))


                    return hello(a_, b_, c[1:])

        hello(a, b, bn)
        if path:
            dict_1[value_2[0]]=path
            if dict_1 not in final_result:
                final_result.append(dict_1)

        main_function(bn[1:])

main_function(list(range(0,len(a))))

print(final_result)

根据需要格式化结果。在

输出:

^{pr2}$

相关问题 更多 >

    热门问题