如何从pandas DataFrame
列表中创建re.findall
?
import os
import pandas as pd
import re
directory = "/Folder/on/Drive/"
docs = os.listdir(directory)
for filename in docs:
if filename.lower().endswith(".pdf"):
match = re.findall("\D{2}\d{10}", filename)
df = pd.DataFrame(match, columns=["Match"])
df.to_csv(directory + "match.csv", index=False, delimiter=",")
以上只会在列表中写下最后一个结果。
答案 0 :(得分:0)
在每次迭代文件名中,您都在创建/覆盖您的csv文件。将数据框创建移到循环外部并创建一个列表来跟踪与正则表达式匹配的所有文件名:
import os
import pandas as pd
import re
directory = "/Folder/on/Drive/"
docs = os.listdir(directory)
match=[]
for filename in docs:
if filename.lower().endswith(".pdf"):
match.extend(re.findall("\D{2}\d{10}", filename))
df = pd.DataFrame(match, columns=["Match"])
df.to_csv(directory + "match.csv", index=False, delimiter=",")