我有一个 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.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 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
添加回答
举报
0/150
提交
取消