python - 如何将一个字母和一个点分成不同的行
问题描述
我有一个包含两列的数据框,即 Word 和 Tag 列。自由度:
Word Tag
0 Pada A
1 bakteri B
2 , C
3 ketumpangtindihan D
4 ini E
5 kemungkinan F
6 terlibat G
7 dalam H
8 regulasi I
9 transkripsi O
10 gen. O
我想用 dot 分隔一些包含一个单词的行。word+.
为两排。所以输出应该如下:
Word Tag
0 Pada A
1 bakteri B
2 , C
3 ketumpangtindihan D
4 ini E
5 kemungkinan F
6 terlibat G
7 dalam H
8 regulasi I
9 transkripsi O
10 gen O
11 . O
有任何想法吗?提前致谢。如果我这样做了explode
,则缺少标点符号。
解决方案
尝试:
df['Word'] = df['Word'].str.split('(?<=\w)\.')
df = df.explode('Word')
map = df['Word'].groupby(level=0).cumcount().ge(1)
df.loc[map, 'Word'] = '.' + df.loc[map, 'Word']
df = df.reset_index(drop=True)
一些注意事项:
(?<=\w)
- 匹配之前有任何字母数字字符的所有内容
\.
- 匹配点
所以本质上你会按点分割,前面是字母数字。然后,您将在每一秒的前面手动添加点,然后是拆分字符串的后面元素。
您的情况下的输出:
Word Tag
0 Pada A
1 bakteri B
2 , C
3 ketumpangtindihan D
4 ini E
5 kemungkinan F
6 terlibat G
7 dalam H
8 regulasi I
9 transkripsi O
10 gen O
11 . O
推荐阅读
- java - JavaFX - 在使用选项卡时将 GUI 拆分为单独的类
- jquery - 通过函数调整电子窗口大小
- scheme - 匹配方案中的括号
- android - 当我使用 adb 显示 /sys/kernel/debug/tracing/available_filter_functions 时没有这样的设备
- python - 初始化以迭代抽象pyomo模型中的集合?
- angular-cli - 运行 ng serve -o 时出现错误
- python - “函数”对象在单元测试中没有属性“assert_call”
- typescript - 键入动态导入
- html - 我如何设计这个 mat-sidenav 的样式?
- maptiler - 有没有办法使用maptiler在云中创建maptiles?