如何为多个值索引python df

我有一个 df:


     ccy    tenor    entry    exit

0    EUR    3m3m       1       3           

1    GBP    6m3m       2       1           

2    JPY    1y1y       4       2        

3    EUR    2y1y       2       5           

4    GBP    9m3m       1       2        

5    AUD    6m3m3m     1       5        

6    JPY    2y1y       3       4   

一个简单的问题,但我有点挣扎。我如何对 df 进行子集化:a) 1y1y 和 2y1y 的男高音(即以 1y 结尾的任何东西) b)3m3m、6m3m、9m3m、6m3m3m 的男高音(即任何以 3m 结尾的东西)


df[df.tenor == '1y1y']

对于 a),上面给了我 1y1y,但我需要选择多个男高音


谢谢


a) 的预期输出


     ccy    tenor    entry    exit          

2    JPY    1y1y       4       2        

3    EUR    2y1y       2       5                 

6    JPY    2y1y       3       4   

b) 的预期输出


     ccy    tenor    entry    exit

0    EUR    3m3m       1       3           

1    GBP    6m3m       2       1                    

4    GBP    9m3m       1       2        

5    AUD    6m3m3m     1       5      


拉莫斯之舞
浏览 181回答 1
1回答

慕田峪4524236

使用Series.str.endswith或Series.str.contains:df1 = df[df.tenor.str.endswith('1y')]#alternative with regex $ for end of string#df1 = df[df.tenor.str.contains('1y$')]print (df1)   ccy tenor  entry  exit2  JPY  1y1y      4     23  EUR  2y1y      2     56  JPY  2y1y      3     4df2 = df[df.tenor.str.endswith('3m')]#alternative with regex $ for end of string#df2 = df[df.tenor.str.contains('3m$')]print (df2)   ccy   tenor  entry  exit0  EUR    3m3m      1     31  GBP    6m3m      2     14  GBP    9m3m      1     25  AUD  6m3m3m      1     5
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python