Python CSV正则表达式基于大多数正则表达式匹配的所有列和输出列列表索引号
嘿,我真的被卡住了,我真的希望有人能帮我解决这个问题。我试图读取CSV文件的前5000行,按制表符分隔符拆分行,然后根据每一列和每一行搜索正则表达式模式,并输出正则表达式匹配/出现次数最多的列索引号。我将提供一个例子来帮助更好地解释我的意思 test.csvPython CSV正则表达式基于大多数正则表达式匹配的所有列和输出列列表索引号,python,python-3.x,Python,Python 3.x,嘿,我真的被卡住了,我真的希望有人能帮我解决这个问题。我试图读取CSV文件的前5000行,按制表符分隔符拆分行,然后根据每一列和每一行搜索正则表达式模式,并输出正则表达式匹配/出现次数最多的列索引号。我将提供一个例子来帮助更好地解释我的意思 test.csv john smith 1132 Anywhere Lane Hoboken NJ 10.0.0.1 07030 Jan 4 erica meyers 1234 Smith Lane Hoboken NJ 127.0.
john smith 1132 Anywhere Lane Hoboken NJ 10.0.0.1 07030 Jan 4
erica meyers 1234 Smith Lane Hoboken NJ 127.0.0.1 07030 March 2
erica meyers 1234 Smith Lane Hoboken NJ 192.168.1.1 07030 april 5
这就是我当前所在的位置(读取csv,按制表符分隔成列,打印前100行):
电流输出的前几行:
['john smith', '1132 Anywhere Lane Hoboken NJ', '10.0.0.1', ' 07030', 'Jan 4']
['john smith', '1234 Smith Lane Hoboken NJ', '127.0.0.1', ' 07030', 'March 2']
['smith john', '1234 Smith Lane Hoboken NJ', '192.168.1.1', ' 07030', 'april 5']
这就是我被困的地方
我想对每行上的所有列搜索正则表达式\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
,并输出正则表达式匹配最多的列索引号
对于这个例子,\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
将匹配
10.0.0.1
127.0.0.1
192.168.1.1
因此,我期望的输出是:
2
你可以这样对待熊猫
df=pd.read\u csv(路径,nrows=5000,sep=“\t”)
编写一个函数来检查正则表达式是否匹配
然后你可以用
注意:
请检查是否需要重新匹配或重新搜索
为什么不使用熊猫?评论不用于扩展讨论;这段对话已经结束。
2
def check_regex_matches(x):
return bool(re.match(regex, x))
list_of_bools_where_regex_matches = df["some_col"].apply(lambda
x:check_regex_match(x))
df["some_col"][list_of_bools_where_regex_matches].index