gpt4 book ai didi

python - pandas 中任意列表的笛卡尔积

转载 作者:行者123 更新时间:2023-11-30 21:54:51 26 4
gpt4 key购买 nike

给定任意数量的列表,我想生成一个 pandas DataFrame作为笛卡尔积。例如,给定:

a = [1, 2, 3]
b = ['val1', 'val2']
c = [100, 101]

我想最终得到 DataFrame带列a , b ,和c ,以及所有 3x2x2=12 组合。

cartesian product in pandas不同,我正在寻找提供两个以上输入的能力,并且我不希望通过 DataFrame s,这将涉及将值保持在相同的 DataFrame 范围内。在一起而不是组合起来。这个问题的答案可能不会与那个问题的答案重叠。

Cartesian product of x and y array points into single array of 2D points不同,我正在寻找一只 Pandas DataFrame结果,带有命名列,而不是二维 numpy 数组。

最佳答案

构建于 this answer对于相关问题(两个 DataFrame 的笛卡尔积),此函数采用列表字典并返回笛卡尔积:

def cartesian_product(d):
index = pd.MultiIndex.from_product(d.values(), names=d.keys())
return pd.DataFrame(index=index).reset_index()

示例:

cartesian_product({'a': [1, 2, 3],
'b': ['val1', 'val2'],
'c': [100, 101]})
a b c
0 1 val1 100
1 1 val1 101
2 1 val2 100
3 1 val2 101
4 2 val1 100
5 2 val1 101
6 2 val2 100
7 2 val2 101
8 3 val1 100
9 3 val1 101
10 3 val2 100
11 3 val2 101

我已将此添加到我的 microdf package 中.

关于python - pandas 中任意列表的笛卡尔积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58242078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com