首页 > 解决方案 > 熊猫和复杂的过滤和合并/加入多个子数据帧

问题描述

我有一个看似复杂的问题,我对如何解决它有一个大致的想法,但我不确定这是否是解决它的最佳方法。我会给出这个场景,并会感谢任何关于如何打破它的帮助。我对 Pandas 还很陌生,所以请原谅我的无知。

情景

我有一个作为数据框导入的 CSV 文件。我正在处理的示例包含 2742 行 × 136 列。行是可变的,但列是设置的。我有一组 23 个查找表(也作为 CSV 文件)命名为每年,每季度(范围是 2020 年第三季度 - 2015 年第一季度)查找文件的名称如下:PPRVU203.csv。所以它包含 2020 年第三季度的值。查找表由两列(“代码”和“模块”)匹配,我使用查找中关联的三个值。

我正在尝试过滤数据框的各个部分,从匹配的查找文件中提取正确的值,合并回原始子集,然后替换为原始数据框。

想法

我可能可以将其抽象并包装在一个函数中,但不确定如何重新放入。我的问题是,对于那些比我更了解 Pandas 的人,过滤、替换值和写回文件的最佳方法是什么.

直接的解决方案是将原始数据帧过滤成 23 个单独的数据帧,然后对每个单独的文件进行合并,然后合并成一个新的数据帧并输出到 CSV。

这似乎效率很低?

我可以发布代码,但我正在寻找更多高级想法?

标签: pythonpandas

解决方案


不确定您的 DataFrame 到底是什么样子,但Pandas.query()方法可能对数据的选择很有用。

name = df.query('columnname == "something"')

推荐阅读