从PostgreSQL中的csv导入数据

时间:2016-07-09 20:31:42

标签: postgresql postgresql-9.1 postgresql-9.2

我有一个包含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创建一个新表。

2 个答案:

答案 0 :(得分:0)

列代表什么?是时间戳还是其他能在关系数据库中更好地表示为行的时间戳?

我的猜测是,你将不得不以某种方式将CSV操纵成postgres可以处理的东西。

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

答案 1 :(得分:0)

在PGAdmin III中

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