Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 将csv导入postgres时如何在Python中派生新列_Python 3.x_Postgresql - Fatal编程技术网

Python 3.x 将csv导入postgres时如何在Python中派生新列

Python 3.x 将csv导入postgres时如何在Python中派生新列,python-3.x,postgresql,Python 3.x,Postgresql,我有一个巨大的数据集(11GB,1900万行),正在使用以下脚本将其加载到postgres中: 导入csv 起始日期时间导入日期 从sqlalchemy导入创建引擎 从sqlalchemy.ext.declarative导入声明性基础 从sqlalchemy.orm导入sessionmaker Base=声明性_Base() 从sqlalchemy导入列、整数、字符串、日期时间、浮点、布尔 类别投诉(基本): __tablename_uuuu='所有投诉' 索引=列(整数,主键=真) 创建日期

我有一个巨大的数据集(11GB,1900万行),正在使用以下脚本将其加载到postgres中:

导入csv
起始日期时间导入日期
从sqlalchemy导入创建引擎
从sqlalchemy.ext.declarative导入声明性基础
从sqlalchemy.orm导入sessionmaker
Base=声明性_Base()
从sqlalchemy导入列、整数、字符串、日期时间、浮点、布尔
类别投诉(基本):
__tablename_uuuu='所有投诉'
索引=列(整数,主键=真)
创建日期=列(日期时间)
关闭日期=列(日期时间)
投诉类型=列(字符串)
描述符=列(字符串)
位置\类型=列(字符串)
事件\u zip=列(整数)
事件地址=列(字符串)
地址\类型=列(字符串)
城市=列(字符串)
borough=列(字符串)
纬度=列(浮动)
经度=列(浮动)
臭虫=列(布尔值)
水=列(布尔值)
噪波=列(布尔值)
热量=列(布尔值)
害虫=列(布尔值)
定义报告(自我):
返回“”%(
self.index、self.created\u日期、self.incident\u zip)
def addZip(self,zip):#一些拉链在csv文件中是字符串
尝试:
self.incident_zip=int(zip)
返回真值
除值错误外:
#打印(“无法解析邮政编码”,zip)
返回错误
数据库名=“”
用户名=“”
引擎=创建引擎('postgres://%s@localhost/%s“%”(用户名,数据库名),echo=False)
Base.metadata.create_all(引擎)
会话=会话生成器(绑定=引擎)
会话=会话()
以“311服务请求”作为f:
reader=csv.DictReader(f)
对于i,枚举(读取器)中的行:
投诉=投诉(指数=i,
创建日期=行[“创建日期”],
关闭日期=行[“关闭日期”],
投诉类型=行[“投诉类型”],
描述符=行['descriptor'],
位置类型=行[“位置类型”],
事件地址=行[“事件地址”],
地址类型=行[“地址类型”],
城市=行[“城市”],
borough=行['borough'],
纬度=行[“纬度”],
经度=行[“经度”],
臭虫=假,
水=假,
噪音=假,
热=假,
(错误=False)
#这里有更多的字段,您可以精确复制所有内容
adddzipsuccessilly=complaint.addZip(第['Incident Zip'行])
如果addedZipSuccessfully==False:
持续
如果投诉创建日期='':
#complaint.created_date=NULL
持续
如果投诉结束日期='':
投诉结束日期=无
如果投诉地点\类型=='':
持续
如果投诉事件地址=='':
持续
如果投诉地址\类型=='':
持续
如果投诉。城市=='':
持续
如果complaint.borough=='':
持续
尝试:
浮动(投诉范围)
除值错误外:
持续
尝试:
浮动(投诉范围)
除值错误外:
持续
如果投诉中的“噪音”。投诉类型==真:
投诉。噪音=正确
其他:
通过
会话.添加(投诉)
如果i%1000==0:
session.commit()
您的“==True”混淆了Python3。移除它,它将按照您的意愿工作

if 'Noise' in complaint.complaint_type:
    complaint.noise = True