熊猫-检查行中是否包含特定字符串,并在新列中返回结果

时间:2020-05-30 16:57:08

标签: python pandas

我有这个数据集:

+-----------------------------------+------------+----------------------+
|               A                   |    B       |   C                  |
+-----------------------------------+------------+----------------------+
| Joseph M. Acaba                   | 2004       |Geology               |
| Loren W. Act                                    Solar Physics         |
| James C. Adamson                  | 1984       |Aerospace Egineerig   |
+-----------------------------------+------------+--------+

i我想针对C列的每一行检查相应短语中是否存在“工程”或“地质”一词。我希望将结果设置在新列中(“ D”),如下例所示:

+----------------------+------------+----------------------+---------+
|               A      |    B       |   C                  | D       |
+----------------------+------------+----------------------+---------+
| Joseph M. Acaba      | 2004       |Geology               |True
| Loren W. Act         |             Solar Physics         |False
| James C. Adamson     | 1984       |Aerospace Egineerig   |True
+-----------------------------------+------------+--------+

我尝试过:

check=pd['Undergraduate Major'].str.contains('Engineering'|”Geology”)
print(check)

得到结果:

0      False
1       True
2       True
3      False
4       True
       ...  
352     True
353    False
354    False
355     True
356    False

但是我希望结果成为一个新列,只有“ false”和“ true”。

1 个答案:

答案 0 :(得分:3)

如果您的数据框名为df,请执行以下操作:

df['NewColumnName'] = df['Undergraduate Major'].str.contains('Engineering|Geology')

我建议避免使用pd作为数据框的名称,因为它通常用于import pandas as pd中的熊猫。