如何从Pandas数据框中的特定模式开始选择列值?

时间:2018-01-18 18:34:20

标签: python pandas dataframe

我有一个pandas数据框如下。这个数据为期一个月。我需要选择从ABC开始的设备。我也需要获取数据框。 (作为我的预期输出)。我该怎么做?

Time Stamp              Id  Latitude    Longitude  Device
01/10/2016 15:22:51:700 1      23        50        ABC (aaa)
01/10/2016 16:28:08:026 1      23        50        ABC (aaa)
01/10/2016 16:28:09:026 1      12        45        ABC (bae)
02/10/2016 19:00:08:026 2      23        50        TTT (ff)
02/10/2016 20:28:08:026 1      23        50        GGG (lll)
03/10/2016 19:00:08:000 2      23        50        ABC (zzz)
03/10/2016 01:02:33:123 2      23        50        NNN (gg)
03/10/2016 06:15:08:500 1      23        50        KKK (yyy)
03/10/2016 10:01:07:022 3      28        88        ABC (bae)
......
......
31/10/2016 13:09:17:044 1      33        80        ABC (bae)

我的预期输出是:

 Time Stamp             Id  Latitude    Longitude  Device
01/10/2016 15:22:51:700 1      23        50        ABC (aaa)
01/10/2016 16:28:08:026 1      23        50        ABC (aaa)
01/10/2016 16:28:09:026 1      12        45        ABC (bae)
03/10/2016 19:00:08:000 2      23        50        ABC (zzz)
03/10/2016 10:01:07:022 3      28        88        ABC (bae)
......
......
31/10/2016 13:09:17:044 1      33        80        ABC (bae)

2 个答案:

答案 0 :(得分:2)

试试这个:df[df.Device.str.startswith('ABC')]

使用pandas,您可以使用series.str来使用几个有用的函数进行字符串操作。

Series.str.startswith,我在上面展示的那个,是选择(返回bool值)索引,以特定模式开头。

BTW,使用contains^的答案基本相同,但是,它使用正则表达式来定义应该是什么的模式,而不是使用pandas提供的函数。输入字符串的第一个字符。

答案 1 :(得分:1)

假设您的数据帧名为“df”,那么如何在pandas.Series.str中使用regexp匹配工具:

df[df['Device'].str.contains('^ABC.*')]