【发布时间】:2020-03-19 12:55:32
【问题描述】:
我有 3 个不同的数据框,每个数据框只有一列 - 一个包含“商店”列,另一个包含“品牌”列,另一个包含“日期”列。 我打算获得所有可能的组合。我尝试了合并功能,但由于我没有连接列,所以我不能。
谁能告诉我要使用什么命令?
谢谢。
【问题讨论】:
-
您应该在问题中添加示例代码和数据,以便人们可以重现。
我有 3 个不同的数据框,每个数据框只有一列 - 一个包含“商店”列,另一个包含“品牌”列,另一个包含“日期”列。 我打算获得所有可能的组合。我尝试了合并功能,但由于我没有连接列,所以我不能。
谁能告诉我要使用什么命令?
谢谢。
【问题讨论】:
通过Series 使用tertools.product 并传递给DataFrame 构造函数:
from itertools import product
df1 = pd.DataFrame({'store':list('abc')})
df2 = pd.DataFrame({'brand':list('zyzw')})
df3 = pd.DataFrame({'date':['2019-01-10','2010-09-06']})
df = pd.DataFrame(product(df1['store'], df2['brand'], df3['date']),
columns=['store','brand','date'])
print (df)
store brand date
0 a z 2019-01-10
1 a z 2010-09-06
2 a y 2019-01-10
3 a y 2010-09-06
4 a z 2019-01-10
5 a z 2010-09-06
6 a w 2019-01-10
7 a w 2010-09-06
8 b z 2019-01-10
9 b z 2010-09-06
10 b y 2019-01-10
11 b y 2010-09-06
12 b z 2019-01-10
13 b z 2010-09-06
14 b w 2019-01-10
15 b w 2010-09-06
16 c z 2019-01-10
17 c z 2010-09-06
18 c y 2019-01-10
19 c y 2010-09-06
20 c z 2019-01-10
21 c z 2010-09-06
22 c w 2019-01-10
23 c w 2010-09-06
对于较旧的 pandas 版本,请添加 list:
df = pd.DataFrame(list(product(df1['store'], df2['brand'], df3['date'])),
columns=['store','brand','date'])
【讨论】: