Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pandas:基于if-else语句并使用来自另一个数据帧的值在数据帧中创建列_Python_Pandas - Fatal编程技术网

Python Pandas:基于if-else语句并使用来自另一个数据帧的值在数据帧中创建列

Python Pandas:基于if-else语句并使用来自另一个数据帧的值在数据帧中创建列,python,pandas,Python,Pandas,我有两个数据帧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 |

我有两个数据帧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

我正在尝试在中创建一个新列,如下所示:


+----+-------+--------+-----+----------+
| 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(条件,值),其中有13个条件。我想如果只有一个id的话,这会很好地工作,但我不知道如何向上扩展它。此外,我认为将B中的类别划分为13列可能有用,但我不确定下一步是什么

任何帮助都将不胜感激

编辑:条件如下,但我不确定如何合并ID和来自dataframe 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')
    ]

你能解释一下匹配的逻辑吗。为什么它在第1行和第2行重复?您来自DFU b的类别被映射到您的ID和DFU a中的列?@Erfan它是来自Jeopardy的数据,所以匹配工作就像您可以解释匹配的逻辑一样,为什么a、b、c、d、e、f只是重复?是否需要匹配类别列表中的前6个条目['a'、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i'、'j'、'k'、'l'、'm'] ?