按几个字符串选择pandas列

时间:2016-08-12 16:27:24

标签: python python-2.7 pandas dataframe

我试图通过特定的部分字符串选择几行数据帧。

以下数据框是原始示例数据:

CODE        DATA 
AA2016      47518  
BB2016      47518  
CC2014      47518  
AA2014      47518  
EE2015      47518  
BB2015      47518  
FF2016      47518  
AA2013      47518  

我想按Code列中前两个单词选择行。

例如,我想选择包含" AA"," BB"," CC"在" Code"柱。

结果应该如下所示:

outer height

我使用这样的代码:

Select_list = ["AA","BB", "CC"]

df = pd.read_clipboard()
df1 = df[df.CODE.str[0:2] isin Select_list]

但是会出现错误,例如SyntaxError: invalid syntax

1 个答案:

答案 0 :(得分:1)

正如@ayhan在评论中指出的那样,您可以使用df[df.CODE.str[0:2].isin(Select_list)]

或者,请注意您可以通过pd.Series.str.contains使用正则表达式:

In [6]: df = pd.DataFrame({'CODE': ['AA2016', 'BB2015', 'AB2015']})

In [7]: df.CODE.str.contains(r'AA.*|BB.*|CC.*')
Out[7]: 
0     True
1     True
2    False
Name: CODE, dtype: bool

(对于这种特定的模式,切片可能更简单。)