我有两个数据框A和B,如下所示:
A:
+----+-------+--------+-----+
| ID | Round | Column | row |
+----+-------+--------+-----+
| 1 | A | 1 | 1 |
| 1 | A | 2 | 1 |
| 1 | A | 3 | 1 |
| 1 | A | 4 | 1 |
| 1 | A | 5 | 1 |
| 1 | A | 6 | 1 |
| 1 | A | 1 | 2 |
| 1 | A | 2 | 2 |
| 1 | A | 3 | 2 |
| 1 | A | 4 | 2 |
| 1 | A | 5 | 2 |
| 1 | A | 6 | 2 |
+----+-------+--------+-----+
B:
+-----+-----------------------------+
| ID | Categories |
+-----+-----------------------------+
| 1 | [a,b,c,d,e,f,g,h,i,j,k,l,m] |
| 2 | [n,o,p,q,r,s,t,u,v,w,x,y,z] |
| ... | ... |
+-----+-----------------------------+
edit2:数据帧a的每一行都是一个危险问题,数据帧B的每一行都是一个游戏。
一共有3个回合,6列和5行,并且有3000个ID。
我正在尝试在A中创建一个新列,如下所示:
+----+-------+--------+-----+----------+
| ID | Round | Column | row | Category |
+----+-------+--------+-----+----------+
| 1 | A | 1 | 1 | a |
| 1 | A | 2 | 1 | b |
| 1 | A | 3 | 1 | c |
| 1 | A | 4 | 1 | d |
| 1 | A | 5 | 1 | e |
| 1 | A | 6 | 1 | f |
| 1 | A | 1 | 2 | a |
| 1 | A | 2 | 2 | b |
| 1 | A | 3 | 2 | c |
| 1 | A | 4 | 2 | d |
| 1 | A | 5 | 2 | e |
| 1 | A | 6 | 2 | f |
+----+-------+--------+-----+----------+
我对如何实际执行此操作非常迷惑。我考虑过使用np.select(conditions,values),其中有13个条件。我认为,如果只有一个id,这会很好地工作,但不是我不确定如何向上缩放。另外,我认为将B中的类别分为13列可能会很有用,但我不确定下一步将是什么。
任何帮助将不胜感激!
编辑:条件如下,尽管我不确定如何合并ID和数据框2中的值
conditions = [
((df['round'] == 'A') & (df['column'] == 1)),
((df['round'] == 'A') & (df['column'] == 2)),
((df['round'] == 'A') & (df['column'] == 3)),
((df['round'] == 'A') & (df['column'] == 4)),
((df['round'] == 'A') & (df['column'] == 5)),
((df['round'] == 'A') & (df['column'] == 6)),
((df['round'] == 'B') & (df['column'] == 1)),
((df['round'] == 'B') & (df['column'] == 2)),
((df['round'] == 'B') & (df['column'] == 3)),
((df['round'] == 'B') & (df['column'] == 4)),
((df['round'] == 'B') & (df['column'] == 5)),
((df['round'] == 'B') & (df['column'] == 6)),
(df['round'] == 'C')
]