想把钥匙分开吗 'a'
价值来自 ['11 - 18 [1.3']
进入 'a1': ['11' ,'12','13','14','8']
'a2': ['18' ,'17','18','16','48'] 'a3': ['1.3' ,'2.8','3.3','4.7','5.4']
此格式的引用正则表达式
regexr.com/61kpi
regexr.com/61kpo
数据
x = {'a': ['11 - 18 [1.3]','12 - 17 [2.8]','13 - 18 [3.3]','14 - 16 [4.7]','8 - 48 [5.3]'],
'b': [13.0, 11.0, 12.0, 14.0, 15.0]}
打印数据
a b
0 11 - 18 [1.3] 13.0
1 12 - 17 [2.8] 11.0
2 13 - 18 [3.3] 12.0
3 14 - 16 [4.7] 14.0
4 8 - 48 [5.3] 15.0
预期结果
a1 a2 a3 b
0 11 18 1.3 13.0
1 12 17 2.8 11.0
2 13 18 3.3 12.0
3 14 16 4.7 14.0
4 8 48 5.3 15.0
预期输出数据
y = {'a1': ['11' ,'12','13','14','8'],'a2': ['18' ,'17','18','16','48'], 'a3': ['1.3' ,'2.8','3.3','4.7','5.3'], 'b': [13.0, 11.0, 21.0, 13.0, 17.0]}
2条答案
按热度按时间0s0u357o1#
正则表达式将是实现这一目标的最佳方法:
使用
.str.extract
使用命名的捕获组:使用
.str.extractall
要在 Dataframe 中的模式不一致的情况下获取所有数字,请执行以下操作:xkftehaa2#
您可以使用正则表达式将文本拆分为新列,然后将字符串转换为数字,例如:
得到: