首页 > 解决方案 > Pandas to_sql - 重复的列不重复

问题描述

这不是我的实际数据,只是一个表示

我正在尝试使用“to_sql”将熊猫数据框保存到 postgres 数据库中。但是,当我尝试这样做时,我收到一个错误“列“my_column”指定了不止一次”。

事情是,我已经采取了一些预防措施,因为我知道我可以在这个项目中有重复的列。我正在使用此功能将计数器添加到重复列:

def df_column_uniquify(df):
df_columns = df.columns
new_columns = []
for item in df_columns:
    counter = 0
    newitem = item
    while newitem in new_columns:
        counter += 1
        newitem = "{}_{}".format(counter, item)
    new_columns.append(newitem)
df.columns = new_columns
return df

因此,如果我有两列名为“my_column_is_ok”,则使用此函数会给我:

“1_my_column_is_ok”和“2_my_column_is_ok”。

问题是,在处理较大的列名时,postgres 在将其视为重复之前似乎没有读取整个名称。

所以如果有这种情况:

A 列:“my_column_is_ok_but_it_is_sorta_long”

B 列:“my_column_is_ok_but_it_is_sorta_short”

此错误返回类似“列“my_column_is_ok_but_it_is_sorta”指定多次”的内容

我的计数器功能不起作用,因为这些名称不一样,而不是全部。

如果有人可以帮助我了解如何处理这个问题,我将非常感激。

标签: pythonpandaspostgresql

解决方案


推荐阅读