Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 读取多个具有全局重复列的文件_Python_Python 3.x_Pandas_Dataframe_Glob - Fatal编程技术网

Python 读取多个具有全局重复列的文件

Python 读取多个具有全局重复列的文件,python,python-3.x,pandas,dataframe,glob,Python,Python 3.x,Pandas,Dataframe,Glob,我正在尝试将许多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')),

我正在尝试将许多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))
假设我的数据如下所示:

但看起来是这样的:


我不希望我的列被复制

您能给我们提供更多的信息吗?尤其是dfs.columns的输出将非常有用。我怀疑你的列名中可能有一些额外的空格,这会导致熊猫在这些列名之间有所不同

您也可以尝试dask:

import dask.dataframe as dd

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

更简单一点,应该会得到相同的结果

您能给我们提供更多的信息吗?尤其是dfs.columns的输出将非常有用。我怀疑你的列名中可能有一些额外的空格,这会导致熊猫在这些列名之间有所不同

您也可以尝试dask:

import dask.dataframe as dd

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

更简单一点,应该得到相同的结果

重要的是考虑concat过程有两种可能的结果。通过选择轴,可以添加新列,如下面的示例I或示例II所示的新行。通过将轴设置为0行或1列,pd.concat可以实现这一点

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

例一:

例二:


重要的是要考虑concat过程有两种可能的结果。通过选择轴,可以添加新列,如下面的示例I或示例II所示的新行。通过将轴设置为0行或1列,pd.concat可以实现这一点

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

例一:

例二:


请提供一些输入和输出,以便有效地跟踪问题。重复是什么意思?您的意思是一个文件的输入会出现多次吗?“glob.globr”/folder/*.txt生成的列表是否具有所需的内容?首先创建列表并对其进行迭代,然后对重复的列发出警告,这样您就可以看到哪里出了问题。请提供一些输入和输出,以便有效地跟踪问题。重复是什么意思?您的意思是一个文件的输入会出现多次吗?“glob.globr”/folder/*.txt生成的列表是否具有所需的内容?首先创建列表并遍历它,然后抛出重复列的警告,这样你就可以看到哪里出了问题。谢谢你的回答。我试图删除代码创建的重复列。通常它不应该复制任何列,我应该有52列,但我有58列。你能提供dfs.columns的输出吗?您的csv可能包含“A”和“A”,因此看起来相同,但列名不同。重复列中的值是否也相同,或者总是缺少一半?谢谢您的回答。我试图删除代码创建的重复列。通常它不应该复制任何列,我应该有52列,但我有58列。你能提供dfs.columns的输出吗?您的csv可能包含“A”和“A”,因此看起来相同,但列名不同。重复列中的值是否也相同,或者总是缺少一半?谢谢您的回答。我试图删除代码创建的重复列。通常它不应该复制任何列,我应该有52列,但我有58列。谢谢你的回答。我试图删除代码创建的重复列。通常它不应该复制任何列,我应该有52列,但我有58列。
pd.concat([pd.read_csv(f) for f in glob.glob(r'/folder/*.txt')], axis=0)