【问题标题】:AWS to SQL pandas AttributeError: 'Series' object has no attributeAWS to SQL pandas AttributeError:“系列”对象没有属性
【发布时间】:2020-10-08 21:35:33
【问题描述】:

我正在尝试使用 pandas 将 CSV 数据从 AWS 存储桶移动到 SQL Server 以读取文件,但是当我尝试将数据插入 SQL Server 时出现此错误:AttributeError: 'Series' object has没有属性'user_id'。 CSV 文件中确实有一个名为 user_id 的列。

这就是我正在使用的代码

from datetime import datetime,timedelta
import boto3
import pandas as pd
import pyodbc



cxnsql = pyodbc.connect('DSN=BD-RJ-HMG;DATABASE=AnalyticsPMais;Trusted_Connection=yes;')
s3c = boto3.client('s3')
yesterday = datetime.now() - timedelta(1)
date = datetime.strftime(yesterday, '%Y-%m-%d')
file='s3://poliedro-prod-relatorios/consumptions-'+date+'.csv'
df = pd.read_csv(file)

cursor = cxnsql.cursor()
for index, row in df.iterrows():
    cursor.execute("INSERT INTO AnalyticsPMais.dbo.LivroDigital (user_id,livro_id,date) values(?,?,?)", row.user_id, row.livro_id, row.date)
cxnsql.commit()
cursor.close()

发生了什么事?

【问题讨论】:

  • 你能检查一下列名user_id中是否没有多余的空格或任何字符吗?
  • Tnx marcin!我已经解决了这个问题。这是一个错误的分隔符

标签: python sql-server pandas amazon-web-services


【解决方案1】:

for 循环中的每个row 都是一个熊猫Series 对象。要通过索引选择Series 对象中的元素,请使用Series.loc

例如,如果您想要user_id,请使用

row.loc['user_id']

【讨论】:

  • 我尝试过这种方式,但它返回了这个错误: Traceback (most recent call last): raise KeyError(key) from err KeyError: 'user_id'
猜你喜欢
  • 2021-04-19
  • 1970-01-01
  • 2020-11-11
  • 2019-04-22
  • 2019-07-26
  • 2020-04-04
  • 2019-09-16
  • 2017-12-12
  • 2018-05-25
相关资源
最近更新 更多