如何正确应用pandas系列提取方法?
How to apply pandas series extract method correctly?
想用破折号和
分隔每行值
看了Andy Hayden's回答后
我将 U
、33
和 A, A
分组
使用(?P<Line>^\d{1,2}|^.|.*, .)
行中 U-2022W-ZZ5891
等。等等
并尝试使用 df[0] = df[0].str.extract(r'(?P<Line>^\d{1,2}|^.|.*, .)')
进行申请
并且不确定如何继续分组以从开始到结束。
col0
U-2022W-ZZ5891
U-2014X-7073
U-2010X-45
33-2010X-ZZ45
A, A-2010X-45
U-1996W-M-ZZ5891
从这里⬆️(向上箭头)到这里⬇️(向下箭头)
col0
col1
col2
col3
U
2022W
ZZ5891
U
2014X
7073
U
2010X
45
33
2010X
ZZ45
A, A
2010X
45
U
1996W
M
ZZ5891
您可以使用这个正则表达式:
new_df = df['col0'].str.extract('(.+?)-(.+?)-(?:(.+?)-)?(.+)').fillna('')
输出:
>>> new_df
0 1 2 3
0 U 2022W ZZ5891
1 U 2014X 7073
2 U 2010X 45
3 33 2010X ZZ45
4 A, A 2010X 45
5 U 1996W M ZZ5891
想用破折号和
分隔每行值看了Andy Hayden's回答后
我将 U
、33
和 A, A
使用(?P<Line>^\d{1,2}|^.|.*, .)
行中 U-2022W-ZZ5891
等。等等
并尝试使用 df[0] = df[0].str.extract(r'(?P<Line>^\d{1,2}|^.|.*, .)')
进行申请
并且不确定如何继续分组以从开始到结束。
col0 |
---|
U-2022W-ZZ5891 |
U-2014X-7073 |
U-2010X-45 |
33-2010X-ZZ45 |
A, A-2010X-45 |
U-1996W-M-ZZ5891 |
从这里⬆️(向上箭头)到这里⬇️(向下箭头)
col0 | col1 | col2 | col3 |
---|---|---|---|
U | 2022W | ZZ5891 | |
U | 2014X | 7073 | |
U | 2010X | 45 | |
33 | 2010X | ZZ45 | |
A, A | 2010X | 45 | |
U | 1996W | M | ZZ5891 |
您可以使用这个正则表达式:
new_df = df['col0'].str.extract('(.+?)-(.+?)-(?:(.+?)-)?(.+)').fillna('')
输出:
>>> new_df
0 1 2 3
0 U 2022W ZZ5891
1 U 2014X 7073
2 U 2010X 45
3 33 2010X ZZ45
4 A, A 2010X 45
5 U 1996W M ZZ5891