读取具有glob重复列的多个文件

时间:2019-11-19 10:31:47

标签: 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')), sort=False))

假设我的数据应如下所示:

enter image description here

但是看起来像这样: enter image description here

我不希望重复我的专栏。

2 个答案:

答案 0 :(得分:0)

您能给我们更多信息吗? import spacy nlp = spacy.load('en_core_web_lg') def most_similar(word, topn=5): word = nlp.vocab[str(word)] queries = [w for w in word.vocab if w.is_lower == word.is_lower and w.prob >= -15] by_similarity = sorted(queries, key=lambda w: word.similarity(w), reverse=True) return [(w.lower_,w.similarity(word)) for w in by_similarity[:topn+1] if w.lower_ != word.lower_] most_similar("dog", topn=3) 的输出尤其有用。我怀疑您的列名中可能会有一些多余的空格,这会导致熊猫之间的空格不同。

您也可以尝试一下:

dfs.columns

有点简单,应该给出相同的结果

答案 1 :(得分: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)