如何在单独的数据帧中为每个值重复数据帧的每一行,然后将两者合并为一个数据帧?

问题描述

我在一个列中有一个具有多个ID的数据框,如下所示:

enter image description here

第二个数据框(也只有一列)中有几个月的时间:

enter image description here

我如何在python中组合两个数据框,以便第一个数据框中具有ID的每个元素对包含月份的数据框中的每个元素重复?

最后我得到一个最终的数据帧,如下所示:

enter image description here

解决方法

您可以为每个key分配一个多余的DataFrame列(而不会更改原始DataFrame)并加入其中,然后在返回最终结果之前将其删除:

import pandas as pd

df1 = pd.DataFrame({
    'id': list(range(1,5))
})

df2 = pd.DataFrame({
    'month': ['2010-01','2010-02','2010-03']
})

df_merged = pd.merge(
    df1.assign(key=1),df2.assign(key=1),on='key'
).drop('key',axis=1)
+----+----+---------+
|    | id |  month  |
+----+----+---------+
|  0 |  1 | 2010-01 |
|  1 |  1 | 2010-02 |
|  2 |  1 | 2010-03 |
|  3 |  2 | 2010-01 |
|  4 |  2 | 2010-02 |
|  5 |  2 | 2010-03 |
|  6 |  3 | 2010-01 |
|  7 |  3 | 2010-02 |
|  8 |  3 | 2010-03 |
|  9 |  4 | 2010-01 |
| 10 |  4 | 2010-02 |
| 11 |  4 | 2010-03 |
+----+----+---------+

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...