我无法merge
-ing两个熊猫数据帧。你知道吗
我有两个类似的数据帧:
团队
date team_member_1 team_member_2
0 2017-11-21 1 6
1 2017-11-21 2 7
2 2017-11-21 3 8
3 2017-11-21 4 9
4 2017-11-21 5 10
5 2018-01-01 1 10
6 2018-01-01 2 9
7 2018-01-01 3 8
8 2018-01-01 4 7
9 2018-01-01 5 6
名称:
date designation ids
0 2017-11-21 a [1, 10]
1 2017-11-21 b [2, 9]
2 2017-11-21 c [3, 8]
3 2017-11-21 d [4, 7]
4 2017-11-21 e [5, 6]
5 2018-01-01 f [1, 2]
6 2018-01-01 g [3, 4]
7 2018-01-01 h [5, 6]
8 2018-01-01 i [7, 8]
9 2018-01-01 j [9, 10]
现在我需要将列team_member_1_designation
添加到teams
表中。我的方法是首先将designations
表分解为如下所示,并将其与date
和member_id
上的teams
合并:
date designation id
0 2017-11-21 a 1
1 2017-11-21 a 10
2 2017-11-21 b 2
3 2017-11-21 b 9
4 2017-11-21 c 3
5 2017-11-21 c 8
6 2017-11-21 d 4
7 2017-11-21 d 7
8 2017-11-21 e 5
9 2017-11-21 e 6
10 2018-01-01 f 1
11 2018-01-01 f 2
12 2018-01-01 g 3
13 2018-01-01 g 4
14 2018-01-01 h 5
15 2018-01-01 h 6
16 2018-01-01 i 7
17 2018-01-01 i 8
18 2018-01-01 j 9
19 2018-01-01 j 10
我为分解designations
表编写的代码是:
designations.set_index(designations.columns.drop('ids', 1).tolist()).ids.apply(pd.Series).stack().reset_index().rename(columns={0: 'id'})
但是,当表格庞大时,这种爆炸操作需要很长时间(假设我每天都有5万个团队/团队成员的指定和团队,为期20年)
有没有更便宜的方法将team_member_1_designation
列添加到teams
表而不分解designations
表?你知道吗
您可以使用^{} :
我认为
.apply(pd.Series)
是不推荐的,如果需要良好的性能解决方案。你知道吗更好的方法是使用
DataFrame
构造函数:或numpy解决方案:
相关问题 更多 >
编程相关推荐