使用glob重复列读取多个文件

问题描述 投票:0回答:2

我正在尝试将许多txt文件读入我的数据框,并且此代码在下面起作用。但是,它复制了我的一些列,而不是全部。我找不到解决方案。我该怎么做才能避免这种情况?

import pandas as pd
import glob

dfs = pd.DataFrame(pd.concat(map(functools.partial(pd.read_csv, sep='\t', low_memory=False),
                    glob.glob(r'/folder/*.txt')), sort=False))
python python-3.x pandas dataframe glob
2个回答
0
投票

您能给我们更多信息吗?特别是dfs.columns的输出将很有用。我怀疑您的列名中可能会有一些多余的空格,这会使熊猫之间的空格有所不同。

也您可以尝试一下:

import dask.dataframe as dd

dfs = dd.read_csv(r'/folder/*.text, sep='\t').compute()

比较简单,应该给出相同的结果


0
投票

重要的是,考虑到合并过程有两个可能的结果。通过选择轴,可以添加新列,如下面的示例(I)或示例(II)中所示的新行。 pd.concat可通过将轴设置为0(行)或1(列)来执行此操作。

阅读优秀文档中的更多内容:concat

示例I:

import pandas as pd
import glob

pd.concat([pd.read_csv(f) for f in glob.glob(r'/folder/*.txt')], axis=1)

示例II:

pd.concat([pd.read_csv(f) for f in glob.glob(r'/folder/*.txt')], axis=0)
© www.soinside.com 2019 - 2024. All rights reserved.