我试图通过特定的部分字符串选择几行数据帧。
以下数据框是原始示例数据:
CODE DATA
AA2016 47518
BB2016 47518
CC2014 47518
AA2014 47518
EE2015 47518
BB2015 47518
FF2016 47518
AA2013 47518
我想按Code
列中前两个单词选择行。
例如,我想选择包含" AA"," BB"," CC"在" Code"柱。
结果应该如下所示:
我使用这样的代码:
Select_list = ["AA","BB", "CC"]
df = pd.read_clipboard()
df1 = df[df.CODE.str[0:2] isin Select_list]
但是会出现错误,例如SyntaxError: invalid syntax
答案 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
(对于这种特定的模式,切片可能更简单。)