如何从文件夹的csv文件中选择列?

问题描述

我正在尝试从文件中选择“第3列”,然后将它们合并为一个文件。问题是,当我对列进行梳理时,它们的格式与文件夹中文件的格式不同。例如,我在“第一,第二和第三”文件夹中有三个文件。我在下面给出的代码始终在“第一个文件之前读取“第二个”文件。有人可以帮我吗?

import glob
import pandas as pd
import numpy as np
from tqdm import tqdm
extension = 'dat'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]
df = pd.DataFrame(np.nan,index = np.arange(1394521),columns = ["veLocity-magnitude"])
for i,f in tqdm(enumerate(all_filenames)):
    reader = pd.read_csv(f,sep=r"\s+")    
    col = reader.iloc[:,[3]]
    frames = [df,col]
    df = pd.concat(frames,axis=1,join="outer")
    df.to_csv('combined.dat',mode='a',header = False,index = False)

解决方法

glob.glob在内部使用os.listdir。这说明了文件的任意顺序。如果您要进行某些特定的排序,则必须自己进行应用,例如使用sorted(glob.glob('*.{}'.format(extension))

,

感谢NYC Coder,是的,此排序功能可以解决我的问题。