合并具有与数据框相似的名称约定的文件

j

我有一个存储在目录中的文件列表,例如

filenames=[
        abc_1.txt
        abc_2.txt
        abc_3.txt

        bcd_1.txt
        bcd_2.txt
        bcd_3.txt
       ]

pattern=[abc]

我想将多个txt文件读入一个数据帧,以使所有以abc开头的文件都在一个数据帧中,然后所有的所有文件名都以bcd等开头。

我的代码:

file_path = '/home/iolie/Downloads/test/'
filenames = os.listdir(file_path)


prefixes = list(set(i.split('_')[0] for i in filenames))

for prefix in prefixes:
    print('Reading files with prefix:',prefix)
    for file in filenames: 
        if file.startswith(prefix):
            print('Reading files:',file)
            list_of_dfs = [pd.concat([pd.read_csv(os.path.join(file_path, file), header=None) ],ignore_index=True)]
            final = pd.concat(list_of_dfs)

这段代码不会追加,但会覆盖数据框。有人可以帮忙吗?

pp

比创建任意数量的未链接数据帧更好的主意是输出一个数据帧字典,其中的键是前缀:

from collections import defaultdict

filenames = ['abc_1.txt', 'abc_2.txt', 'abc_3.txt',
             'bcd_1.txt', 'bcd_2.txt', 'bcd_3.txt']

dd = defaultdict(list)

for fn in filenames:
    dd[fn.split('_')[0]].append(fn)

dict_of_dfs = {}
for k, v in dd.items():
    dict_of_dfs[k] = pd.concat([pd.read_csv(fn) for fn in v], ignore_index=True)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫:合并名称相似的列

使用相似的列合并2个数据框

熊猫在其相似的列上合并2个数据框(这是索引)

合并相似的数据框行

选择名称相似的python数据框列

基于相似的组/索引合并多索引数据框

Shell,复制名称相似的文件

将输出变量拆分为大小相似的数据框,然后合并它们

如何在Pandas Dataframe中合并具有相似名称的多个列而不丢失数据

合并两个具有相似列的数据框

合并两个具有相似值但日期熊猫不同的不同数据框

具有相似名称的多个数据框

如何合并具有相似数据的行

合并具有相似名称python的CSV

合并名称相似的PDF文件

合并具有相同名称的数据框行

在MySQL中合并相似的数据

合并两个具有相同列的相似数据框

合并具有多个变量的 2 个数据集(不能只使用相似的变量)

当具有相似值的列具有相似的行值时合并两个不同的数据帧

在多个数据框中搜索相似的列名称

合并许多具有相似名称的 csv 文件

将名称相似的文件合并到一个数据框中

如何将具有相似名称的列的 Pandas 数据框转换为行?

重命名数据框中具有相似名称的行值

Pandas:两个大小不同但值相似的数据框。当 df1 具有相似的值时,我需要来自 df2 的数据

如何合并熊猫数据框中名称相似的列?

如何使用熊猫在数据框中返回具有相似名称的列

如何合并来自两个不同数据帧的具有相同名称的两列并比较和打印相似的列