首页 > 解决方案 > 从 2 个列表的笛卡尔积创建新的 DataFrame

问题描述

我想要在 Pandas 中实现以下目标:

a = [1,2,3,4]
b = ['a', 'b']

我可以创建一个像这样的 DataFrame:

column1 column2
'a'        1
'a'        2
'a'        3
'a'        4
'b'        1
'b'        2
'b'        3
'b'        4

标签: pythonpandas

解决方案


itertools.productDataFrame构造函数一起使用:

a = [1, 2, 3, 4]
b = ['a', 'b']

from itertools import product

# pandas 0.24.0+
df = pd.DataFrame(product(b, a), columns=['column1', 'column2'])
# pandas below 
# df = pd.DataFrame(list(product(b, a)), columns=['column1', 'column2'])
print (df)
  column1  column2
0       a        1
1       a        2
2       a        3
3       a        4
4       b        1
5       b        2
6       b        3
7       b        4

推荐阅读