我有一个列中有列表的数据框,我试图找出最有效的方法来找到两个列表的组合 -
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。但是它使我的系统因数据框中的行数增加而崩溃。你能建议我任何有效的方法来做到这一点吗?提前致谢。
您还可以使用itertools.product
带numpy.reshape
:
from itertools import product
print (pd.DataFrame(np.reshape([list(product(a,b))
for a,b in df.to_numpy()],
(-1,2,2)).tolist()))
0 1
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]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句