【问题标题】:Importing data from csv in PostgreSQL在 PostgreSQL 中从 csv 导入数据
【发布时间】:2016-11-12 04:05:43
【问题描述】:

我有一个包含 4000 列的 CSV 文件,我需要将它导入到 postgres 数据库。我正在使用 pgadminIII。在 ORACLE SQL 中,有一个选项,我可以右键单击表并导入。 Postgres中有没有类似的方法。如果不是,那么创建包含这么多列的表的最有效方法是什么?

更新 - 我得到了它的工作:

import pandas as pd
df = pd.read_csv('C:/Users/dbharali0376/Desktop/Merge_N_Reorder/ip_merged_52_final.csv',dtype='unicode')
df.columns = [c.lower() for c in df.columns] 
from sqlalchemy import create_engine
engine = create_engine('postgresql://postgres:password@localhost:5432/postgres')

df.to_sql("trial", engine, if_exists='append',index=False)

这会根据输入的 csv 创建一个新表。

【问题讨论】:

标签: postgresql postgresql-9.1 postgresql-9.2


【解决方案1】:

这些列代表什么?是时间戳还是其他可以在关系数据库中更好地表示为行的东西?

我的猜测是,您将不得不以某种方式将该 CSV 操作为 postgres 可以处理的东西。

"pgfutter" 是一个 python 脚本,它将根据 CSV 标头为您创建表,然后使用 COPY 命令加载数据。它不是 GUI 工具,但应该易于使用。

【讨论】:

    【解决方案2】:

    在 PGAdmin III 中

    1. 转到架构中的“表”选项。
    2. 右键单击您的表,然后单击导入。
    3. 浏览crv文件,点击格式并选择crv。
    4. 自定义导入 - 编码/定界符等

    【讨论】:

    • 只有在已经创建表的情况下才有效。我更新了我的问题。我找到了解决办法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    相关资源
    最近更新 更多