为了账号安全,请及时绑定邮箱和手机立即绑定

如何为多个值索引python df

如何为多个值索引python df

拉莫斯之舞 2021-06-03 16:30:47
我有一个 df:     ccy    tenor    entry    exit0    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    exit0    EUR    3m3m       1       3           1    GBP    6m3m       2       1                    4    GBP    9m3m       1       2        5    AUD    6m3m3m     1       5      
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

使用Series.str.endswithSeries.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  exit

2  JPY  1y1y      4     2

3  EUR  2y1y      2     5

6  JPY  2y1y      3     4


df2 = 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  exit

0  EUR    3m3m      1     3

1  GBP    6m3m      2     1

4  GBP    9m3m      1     2

5  AUD  6m3m3m      1     5


查看完整回答
反对 回复 2021-06-09
  • 1 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信