如何在pandas中创建一个阶乘数据框?

2024-09-28 22:35:29 发布

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

如何使用所有可能的因素组合创建熊猫数据框?在

factor1 = ['a','b']
factor2 = ['x','y,'z']
factor3 = [1, 2]
val = 0

这就是我的目标:

^{pr2}$

考虑到这么少的因素,这可以手工完成,但是随着数量的增加,使用一种更为自动化的方法来构建它将是切实可行的。在


Tags: 数据方法目标数量val手工因素pr2
2条回答

因为我想要一个pandas数据帧,所以我实际上创建了一个字典列表(为了有列名):

import pandas as pd

combs = [ {'factor1':f1, 'factor2':f2, 'factor3':f3, 'val':val} for f1 in factor1 for f2 in factor2 for f3 in factor3 ]
df = pd.DataFrame(combs)

这就是list comprehensions的用途。在

factor1 = ['a','b']
factor2 = ['x','y,'z']
factor3 = [1, 2]
val = 0

combs = [ (f1, f2, f3, val)
    for f1 in factor2
    for f2 in factor2
    for f3 in factor3 ]
# [ ('a', 'x', 1, 0),
#   ('a', 'x', 2, 0),
#   ('a', 'y', 1, 0),
#   ('a', 'y', 2, 0),
#   ... etc

(f1, f2, f3, val)替换为要用于打印表的任何内容。或者可以从元组列表中打印出来。在

在数学上,这被称为Cartesian Product。在

相关问题 更多 >