【发布时间】:2019-11-07 15:06:29
【问题描述】:
我正在使用循环读取许多 csv 文件,它们都有 38 列。我将它们全部添加到列表中,然后连接/创建一个数据框。我的问题是,尽管所有这些 csv 文件都有 38 列,但我生成的数据框最终还是有 105 列。
这是截图:
如何使生成的数据框具有正确的 38 列并将所有行堆叠在一起?
import boto3
import pandas as pd
import io
s3 = boto3.resource('s3')
client = boto3.client('s3')
bucket = s3.Bucket('alpha-enforcement-data-engineering')
appended_data = []
for obj in bucket.objects.filter(Prefix='closed/closed_processed/year_201'):
print(obj.key)
df = pd.read_csv(f's3://alpha-enforcement-data-engineering/{obj.key}', low_memory=False)
print(df.shape)
appended_data.append(df)
df_closed = pd.concat(appended_data, axis=0, sort=False)
print(df_closed.shape)
【问题讨论】: