我有许多带有定价数据的镶木地板文件,出价和要价以及尺寸存储为浮点值列表 例如
bidprices \
0 [4.51088, 4.51079, 4.51065, 4.51051, 4.51011, ...
1 [4.51088, 4.51079, 4.51065, 4.51051, 4.51011, ...
2 [4.51073, 4.51052, 4.51029, 4.51002]
3 [4.51049, 4.51049, 4.51039]
4 [4.51049, 4.51039]
... ...
633621 [4.52003, 4.52001, 4.51988, 4.5195]
bidsizes \
0 [1000000, 5000000, 10000000, 20000000, 4000000...
1 [1000000, 5000000, 10000000, 20000000, 4000000...
2 [1000000, 4000000, 5000000, 10000000]
3 [500000, 1000000, 3000000]
4 [1000000, 3000000]
... ...
633621 [500000, 500000, 2000000, 7000000]
我正在使用
boto3
连接到 AWS s3 存储桶并将文件读入数据帧。不存在连接或权限问题,代码已经过测试并且可以在 Windows 计算机上运行。
session = boto3.Session(profile_name='aws-profile')
s3 = session.client('s3')
for key in key_name:
response = s3.get_object(Bucket=bucket, Key= key + '/' + self.symbol + '_' + x + '.parquet')
content = response['Body'].read()
file_obj = io.BytesIO(content)
df = pd.read_parquet(file_obj)
files.append(df)
但是,当我从我的机器(MacOS Sequoia 版本 15.1 (24B83))python3 版本
Python 3.9.6
运行时,数据框会在列表应在的位置生成空列,当文件存储在本地时,也会发生同样的情况。
df.isnull().all()
给出
[1739342 rows x 11 columns]
time False
sym False
provider False
valuedate False
received False
bid False
ask False
bidprices True
bidsizes True
askprices True
asksizes True
dtype: bool
我尝试更新 python 版本,检查权限并验证文件没有损坏。最奇怪的是,我在本地保存了一个文件,当读入 df 时,该文件不会丢失列表值,但与其他不起作用的本地文件相比,我看不到它的存储方式有任何差异。
我没有包含完整的代码,因为它似乎不是这里的原因,但如果有必要,我很乐意包含它。非常感谢任何帮助。
现在也有同样的问题。尝试使用不同的引擎。
fastparquet
对我不起作用,但 pyarrow
对我有用。
df = pd.read_parquet(file_obj, engine="pyarrow")