通过过滤python中panda.merge输出的列来形成列表

时间:2014-11-26 13:24:41

标签: python list pandas merge

我已经使用pandas合并了两个csv文件,并使用以下方法将合并后的输出保存在merged变量中:

merged= pd.merge(f1,f2,on='name',how='inner')

merged有大约10列,我想从中选择两个colmuns - nametype,并形成一个list of lists,其输出应为像这种格式的东西:

         [['Bread', 'Milk'],
         ['Bread', 'Diapers', 'Beer', 'Eggs'],
         ['Milk', 'Diapers', 'Beer', 'Coke'],
         ['Bread', 'Milk', 'Diapers', 'Beer'],
         ['Bread', 'Milk', 'Diapers', 'Coke']]

此处,每个内部列表中的第一个值应为name,后跟type的值,它们可以是倍数,在这种情况下,它们都由,分隔。

我不知道如何从上面的pandas merge的合并输出中过滤掉两列,并从上面的格式形成这两列的列表列表?

1 个答案:

答案 0 :(得分:0)

我从未直接使用过pandas,但假设访问列的输出是list,这应该可行:

listoflists = [[n]+t.split(',') for n,t in zip(merged.name,merged.type)]

zip输出几乎所需的元组列表,除非您需要将字符串从type拆分,如果它们包含多个项目。

对于该列表中的每个元组,外部列表解析将名称值n元组包装在列表中,在任何t上拆分类型字符串,({{的输出1}}是一个列表,这就是str.split被包装的原因),并将这两个列表加在一起。