Pandas从右到左在第二秒后拉出部分绳子。要不然先。如果2不存在

2024-05-13 22:17:22 发布

您现在位置:Python中文网/ 问答频道 /正文

第二节课结束后,我会从右向左抽出任何东西。有些人没有两节课,所以这只是最后一节课。其他的有多个周期。有没有一种聪明的正则表达式方法可以实现这一点

df
    file_name
0   image001.png 
1   image002.jpg
2   image003.jpg
3   1234_001.pdf
4   machine datasheet.pdf
5   asdf_101010101.xlsx
6   not_malicious.docx.pdf
7   example.txt.scf
8   place 1010 - wiki edits.pdf
9   I LOVE YOU.TXT.vbs
10  test.test.read_this.pdf 

期望输出:

df
    file_name
0   png 
1   jpg
2   jpg
3   pdf
4   pdf
5   xlsx
6   docx.pdf
7   txt.scf
8   pdf
9   TXT.vbs
10  read_this.pdf 

Tags: nametesttxtdfreadpdfpngthis
1条回答
网友
1楼 · 发布于 2024-05-13 22:17:22

您需要使用.分割file_name,然后如果列表大小超过2,则返回列表中的最后两个,否则返回最后一个元素

df['file_name'].str.split('.').apply(lambda x: '.'.join(x[-2:]) if len(x)>2 else x[-1])

输出:

0               png
1               jpg
2               jpg
3               pdf
4               pdf
5              xlsx
6          docx.pdf
7           txt.scf
8               pdf
9           TXT.vbs
10    read_this.pdf

相关问题 更多 >