问题描述
我在一个列中有一个具有多个ID的数据框,如下所示:
第二个数据框(也只有一列)中有几个月的时间:
我如何在python中组合两个数据框,以便第一个数据框中具有ID的每个元素对包含月份的数据框中的每个元素重复?
最后我得到一个最终的数据帧,如下所示:
解决方法
您可以为每个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 |
+----+----+---------+