从SQLAlchemy Join处理Pandas DataFrame构造函数中的重复列


问题内容

我知道read_csv有,mangle_dup_cols但是如何在发出后从sqlalchemy中的sql join中执行相同的操作:

pd.DataFrame(result.fetchall(), columns=result.keys())

df.info()由于使用了重复的col名称,使用时出现错误。


问题答案:

您可以创建自己的帮助程序功能来处理列名。我从以下代码中复制了以下代码io.parsers._infer_columns

def mangle_dupe_cols(columns):
    counts = {}
    for i, col in enumerate(columns):
        cur_count = counts.get(col, 0)
        if cur_count > 0:
            columns[i] = '%s.%d' % (col, cur_count)
        counts[col] = cur_count + 1
    return columns

pd.DataFrame(result.fetchall(), columns=mangle_dupe_cols(result.keys()))