根据字符串条件python选择数据

时间:2016-08-29 08:23:13

标签: python string pandas dataframe startswith

我有一个大型数据库,我想在其中选择符合特定条件的所有列:

我的数据如下所示:

Name  a  b  c 
target-01  5196     24     24  
target-02  5950    150    150 
target-03  5598     50     50 
object-01  6558     44     -1 
object-02  6190     60     60 

我想选择Nametarget开头的所有数据。

所以选定的df将是:

target-01  5196     24     24  
target-02  5950    150    150 
target-03  5598     50     50 

我正在使用以下方式阅读数据:

data = pd.read_csv('catalog.txt', sep = '\s+', header = None, skiprows =1 )

如何选择我想要的数据?

1 个答案:

答案 0 :(得分:2)

使用str.startswithboolean indexing

print (df[df.Name.str.startswith('target')])
        Name     a    b    c
0  target-01  5196   24   24
1  target-02  5950  150  150
2  target-03  5598   50   50

str.contains的另一个解决方案:

print (df[df.Name.str.contains(r'^target')])
        Name     a    b    c
0  target-01  5196   24   24
1  target-02  5950  150  150
2  target-03  5598   50   50

filter的最后解决方案:

df.set_index('Name', inplace=True)

print (df.filter(regex=r'^target', axis=0))
              a    b    c
Name                     
target-01  5196   24   24
target-02  5950  150  150
target-03  5598   50   50

print (df.filter(regex=r'^target', axis=0).reset_index())
        Name     a    b    c
0  target-01  5196   24   24
1  target-02  5950  150  150
2  target-03  5598   50   50