来自re.findall列表的Pandas DataFrame

时间:2015-07-04 18:12:09

标签: python pandas

如何从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=",")

以上只会在列表中写下最后一个结果。

1 个答案:

答案 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=",")