【发布时间】:2019-12-30 05:02:32
【问题描述】:
import pandas as pd
df = pd.DataFrame({'Date':['This 1-A16-19 person is BL-17-1111 and other',
'dont Z-1-12 do here but NOT 12-24-1981',
'numbers: 1A-256-29Q88 ok'],
'IDs': ['A11','B22','C33'],
})
使用上面的dataframe我想做以下1)使用regex识别所有数字+数字组合,例如1-A16-192)存储在字典中
理想情况下,我想要以下输出(请注意,正则表达式故意没有选择 12-24-1981,因为它没有字母,例如 1A-24-1981)
{1: 1-A16-19, 2:BL-17-1111, 3: Z-1-12, 4: 1A-256-29Q88}
谁能帮我做这个?
【问题讨论】:
-
使用
dataframe.extractall(regex)。我看不到你想要的字符串的模式。去Regex 101玩图案 -
我猜该模式是由
-分隔的字母和数字的任意组合 -
“但不是 12-24-1981”怎么样?
-
12-24-1981不应被拾取,因为它没有与之关联的字母。如果是1A-24-1981,那么是的正则表达式应该是它 -
如果你的匹配总是
xxx-xxx-xxx,那么你可以试试\S+-\S+-\S+
标签: regex python-3.x string pandas dictionary