Regex 不输出表格的数据框

Regex 不输出表格的数据框,regex,python-3.x,pandas,glob,Regex,Python 3.x,Pandas,Glob,我一直致力于从大量文件中提取数据。我想形成一个数据表,最左边的列是文件基名称,下一列是数字数据。到目前为止,我一直在测试一个包含8个文件的文件夹,但我希望能够读取数百个文件 我曾尝试添加索引,但这似乎会导致更多问题。我将最接近的工作代码附在输出旁边 在: 这似乎可以用于提取数据,但它不是我要寻找的形式 输出: 是什么导致了表的断开,为什么我的列的顺序与我希望的相反?非常感谢您的帮助。这应该更接近您的意图: all_data = [] for file in glob.glob('*rank_*.

我一直致力于从大量文件中提取数据。我想形成一个数据表,最左边的列是文件基名称,下一列是数字数据。到目前为止,我一直在测试一个包含8个文件的文件夹,但我希望能够读取数百个文件

我曾尝试添加索引,但这似乎会导致更多问题。我将最接近的工作代码附在输出旁边

在:

这似乎可以用于提取数据,但它不是我要寻找的形式

输出:


是什么导致了表的断开,为什么我的列的顺序与我希望的相反?非常感谢您的帮助。

这应该更接近您的意图:

all_data = []
for file in glob.glob('*rank_*.pdb'):
    with open(file) as fp:
        file_data = []
        for result in pattern.findall(fp.read()):
            file_data.append([file, result])
    all_data.extend(file_data)
df = pd.DataFrame(all_data, columns=['file', 'result'])
print(df)

这应该更接近您的意图:

all_data = []
for file in glob.glob('*rank_*.pdb'):
    with open(file) as fp:
        file_data = []
        for result in pattern.findall(fp.read()):
            file_data.append([file, result])
    all_data.extend(file_data)
df = pd.DataFrame(all_data, columns=['file', 'result'])
print(df)

很大程度上取决于文件中数据的格式。让我们看看那是什么样子。阅读这些可能有助于提高问题的质量。如果您试图获取一个两列数据帧,其中一列中包含值,另一列中包含文件,那么我建议如下。在循环之外创建一个空列表。在内部循环中,将值作为字典追加到此列表:
Dock_energy={file:[],result:[]}
应该是
myList.append({'file':file:[],'result':result})
。循环之后,使用
df=pd.DataFrame(myList)
创建数据帧。这在很大程度上取决于文件中数据的格式。让我们看看那是什么样子。阅读这些可能有助于提高问题的质量。如果您试图获取一个两列数据帧,其中一列中包含值,另一列中包含文件,那么我建议如下。在循环之外创建一个空列表。在内部循环中,将值作为字典追加到此列表:
Dock_energy={file:[],result:[]}
应该是
myList.append({'file':file:[],'result':result})
。循环之后,使用
df=pd.DataFrame(myList)
创建数据帧。是的,它工作得很好。我还是python新手,非常感谢您的帮助。*.extend命令会导致什么?我显然需要继续练习和阅读。再次感谢。
extend()
方法将第二个列表的所有元素添加到列表的末尾。这类似于为其他列表的每个元素调用
append()
。在这里,
所有的\u数据
在每个循环中由
文件\u数据
的所有元素增长。是的,它工作得很好。我还是python新手,非常感谢您的帮助。*.extend命令会导致什么?我显然需要继续练习和阅读。再次感谢。
extend()
方法将第二个列表的所有元素添加到列表的末尾。这类似于为其他列表的每个元素调用
append()
。在这里,
all_data
在每个循环中由
文件_data
的所有元素增长。
all_data = []
for file in glob.glob('*rank_*.pdb'):
    with open(file) as fp:
        file_data = []
        for result in pattern.findall(fp.read()):
            file_data.append([file, result])
    all_data.extend(file_data)
df = pd.DataFrame(all_data, columns=['file', 'result'])
print(df)