简体   繁体   English

寻求更好的解决方案以创建包含现有列中特定单词的新列

[英]Asking for better solution for creating a new column that contains specific word in existing columns

I have the following data frame. 我有以下数据框。

data = pd.DataFrame()
data ['id1_des'] = ['Accurate','Through','Accurate', 'Blocked']
data ['id2_des'] = ['','Foot','', 'Not Accurate']
data ['id3_des'] = ['','shot','', '']
data ['id4_des'] = ['','Accurate','', '']

I am trying to create a new column that contains Accurate or Not Accurate from existing 4 columns. 我试图从现有的4列中创建一个包含“ 准确”或“ 不准确”的新列。

I used the following method: 我使用以下方法:

Con1 = 'Accurate'
data['accuracy'] = np.select([Con1 ==data.id1_des,Con1 ==data.id2_des,Con1 ==data.id3_des,Con1 ==data.id4_des],['Accurate','Accurate','Accurate','Accurate'],default = 'Not Accurate')

I got what I wanted to create. 我得到了想要创建的东西。 However, I would like to ask if anyone can advise better solution for this? 但是,我想问问是否有人可以为此建议更好的解决方案?

My output is as follow: 我的输出如下:

在此处输入图片说明

Thanks, Thanks, 谢谢,谢谢,

Zep 齐普

Using ffill 使用ffill

data['accuracy']=data.replace('',np.nan).ffill(axis = 1).iloc[:,-1]
data
Out[23]: 
    id1_des       id2_des id3_des   id4_des      accuracy
0  Accurate                                      Accurate
1   Through          Foot    shot  Accurate      Accurate
2  Accurate                                      Accurate
3   Blocked  Not Accurate                    Not Accurate

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM