Python 读取多个具有全局重复列的文件
我正在尝试将许多txt文件读入我的数据框,下面的代码可以工作。但是,它复制了我的一些列,而不是所有列。我找不到解决办法。我能做些什么来防止这种情况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')),
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)