【发布时间】:2020-08-11 03:54:26
【问题描述】:
我有一个列中包含列表的数据框,我正在尝试找出最有效的方法来查找两个列表的组合 -
df = pd.DataFrame([[['a','b','c'],['l','m']],[['d','e','f'],['n','o']]],columns = ['col1','col2'])
现在这种情况下的输出将是 -
col1 col2
0 [a, l] [a, m]
1 [b, l] [b, m]
2 [c, l] [c, m]
3 [d, n] [d, o]
4 [e, n] [e, o]
5 [f, n] [f, o]
我尝试遍历每一行,然后应用 itertools.combinations。但它使我的系统崩溃,因为数据框中的行数更多。你能建议我任何有效的方法来做到这一点吗?提前致谢。
【问题讨论】:
-
多少行会崩溃?
-
问题似乎更多在于您如何迭代?最好的方法是不对给定行保留任何修改数据的缓存。完成组合后,只需将该行刷新,然后移动以进行下一行处理。此外,如果数据帧的大小与您的系统所拥有的 RAM(分配给您的进程)相比太大,那么无论如何它都会因 OOO 而失败。处理该问题的方法是将文件分块并一次处理一个块并在最后连接。
标签: python pandas dataframe combinations