【问题标题】:Can't remove Rows from existing csv file in AWS S3 using python无法使用 python 从 AWS S3 中的现有 csv 文件中删除行
【发布时间】:2021-09-21 16:09:35
【问题描述】:

无法使用 python 从 AWS S3 中的现有 csv 文件中删除行, 目前,我可以使用我的代码读取写入和附加数据,但是当我尝试删除一行时,出现以下错误

我的代码

import pandas as pd
import boto3
import csv
Name = "database-2"
Launch_time = "2021-07-09T11:04:80z"
Region = "us-east-2"
data_list = {'Instance_name': [Name],
            'Created_time ':  [Launch_time],
            'Region       ':  [Region]}
s3_client = boto3.client('s3')
df = pd.DataFrame(data_list)
bytes_to_write = df.to_csv(None, header=None, index=False).encode()
print(bytes_to_write)
file_name = 'blank.csv'
# get the existing file
current_data = s3_client.get_object(Bucket='test-lambda', Key=file_name)['Body'].read()
# append
print(current_data)
appended_data = current_data + bytes_to_write
# drop raw 2
appended_data = appended_data.drop([2], axis=0)
# overwrite
s3_client.put_object(Body=appended_data, Bucket='test-lambda', Key=file_name)

错误信息

  Traceback (most recent call last):
  File "script.py", line 21, in <module>
    appended_data = appended_data.drop([2], axis=0)
AttributeError: 'bytes' object has no attribute 'drop'

如何解决这个问题?请帮帮我...

【问题讨论】:

    标签: pandas dataframe csv amazon-s3 boto3


    【解决方案1】:

    我认为您缺少将原始 csv 数据读回熊猫数据框对象的行。比如:

    df.from_csv.......
    

    目前您正在连接原始字节,然后在其上运行 drop 命令,这就是您收到错误的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 2017-09-30
      相关资源
      最近更新 更多