【问题标题】:Pandas: Merge data frames without connection column [closed]熊猫:合并没有连接列的数据框[关闭]
【发布时间】:2020-03-19 12:55:32
【问题描述】:

我有 3 个不同的数据框,每个数据框只有一列 - 一个包含“商店”列,另一个包含“品牌”列,另一个包含“日期”列。 我打算获得所有可能的组合。我尝试了合并功能,但由于我没有连接列,所以我不能。

谁能告诉我要使用什么命令?

谢谢。

【问题讨论】:

  • 您应该在问题中添加示例代码和数据,以便人们可以重现。

标签: pandas merge


【解决方案1】:

通过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'])

【讨论】:

    猜你喜欢
    • 2023-02-10
    • 2016-10-31
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 2014-09-15
    • 2013-09-26
    • 1970-01-01
    相关资源
    最近更新 更多