Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.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 在两列中逐行创建新的列值_Python_Pandas_Dataframe - Fatal编程技术网

Python 在两列中逐行创建新的列值

Python 在两列中逐行创建新的列值,python,pandas,dataframe,Python,Pandas,Dataframe,嗨,我正在尝试根据两列中的值组合创建一个新列 我的原始df如下所示 | id | code_1 | code_2 | | --- | -------- | ----- | | A0 | 001 | X1 | | A1 | 001 | X2 | | A2 | 001 | x3 | | A3 | 001 | x4 | | A4 | 002 | X1 | | A5 | 002

嗨,我正在尝试根据两列中的值组合创建一个新列

我的原始df如下所示

|  id | code_1   | code_2  |
| --- | -------- |  -----  |
| A0  | 001      |  X1     |
| A1  | 001      |  X2     |
| A2  | 001      |  x3     |
| A3  | 001      |  x4     |
| A4  | 002      |  X1     |
| A5  | 002      |  X2     |
不管第一列中的id是什么,我只考虑第二列和第三列的组合,即“code_1”和“code_2”

如果'code_1'是001,'code_2'是x1、x2和x3,我想创建新列并给出Y1

如果'code_1'是001,'code_2'是x4,那么我想给出Y2

如果'code_2'是002,'code_2'是x1和x2,那么我想给出Z1

因此,此表的最终输出如下所示:

|  id | code_1   | code_2  |  new_code  |
| --- | -------- |  -----  |  --------  |
| A0  | 001      |  X1     |  Y1        |
| A1  | 001      |  X2     |  Y1        |
| A2  | 001      |  x3     |  Y1        |
| A3  | 001      |  x4     |  Y2        |
| A4  | 002      |  X1     |  Z1        |
| A5  | 002      |  X2     |  Z1        |
感谢通过
使用链条件进行按位
测试,并由和测试:

回答你的问题了吗?
m1 = df['code_1'].eq('001') & df['code_2'].isin(['x1', 'x2', 'x3'])
m2 = df['code_1'].eq('001') & df['code_2'].eq('x4')
m2 = df['code_1'].eq('002') & df['code_2'].eq(['x1', 'x2'])

df['new_code'] = np.select([m1, m2, m3], ['Y1','Y2','Z1'])