具有数据帧的列表的交叉连接(笛卡尔积)

2024-05-14 19:44:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表和一个数据框。在

import pandas as pd
work_station = ['A','B','C']
name = ['Mike','Tom','Scott','Tracy']
salary = ['60000','50000','100000','90000']
df = pd.DataFrame({'name':name,'salary':salary})

我想把work_station和df交叉连接在一起,这样输出如下所示:

^{pr2}$

我试着用*函数

df1 = work_station * salary 

但它不起作用因为

TypeError: can't multiply sequence by non-int of type 'list'

有什么建议吗?谢谢!在


Tags: 数据nameimportpandasdf列表asscott
1条回答
网友
1楼 · 发布于 2024-05-14 19:44:38

简单点,使用concatkeys参数:

(pd.concat([df] * len(work_station), keys=work_station)
   .reset_index(level=1, drop=True)
   .rename_axis('station')
   .reset_index()
)

   station   name  salary
0        A   Mike   60000
1        A    Tom   50000
2        A  Scott  100000
3        A  Tracy   90000
4        B   Mike   60000
5        B    Tom   50000
6        B  Scott  100000
7        B  Tracy   90000
8        C   Mike   60000
9        C    Tom   50000
10       C  Scott  100000
11       C  Tracy   90000

您也可以使用笛卡尔积走merge路线:

^{pr2}$

相关问题 更多 >

    热门问题