我正在尝试使用 s3fs 库从 s3 存储桶下载 csv 文件。我注意到使用 Pandas 编写新的 csv 以某种方式改变了数据。所以我想直接下载原始状态的文件。
该文档具有下载功能,但我不明白如何使用它:
download(self, rpath, lpath[, recursive])
: Alias of FilesystemSpec.get.
这是我尝试过的:
import pandas as pd
import datetime
import os
import s3fs
import numpy as np
#Creds for s3
fs = s3fs.S3FileSystem(key=mykey, secret=mysecretkey)
bucket = "s3://mys3bucket/mys3bucket"
files = fs.ls(bucket)[-3:]
#download files:
for file in files:
with fs.open(file) as f:
fs.download(f,"test.csv")
AttributeError: 'S3File' object has no attribute 'rstrip'
Run Code Online (Sandbox Code Playgroud) 我有一个字符串列表:
a = ['book','book','cards','book','foo','foo','computer']
Run Code Online (Sandbox Code Playgroud)
我想返回此列表中的所有内容x > 2
最终输出:
a = ['book','book','book']
Run Code Online (Sandbox Code Playgroud)
我不太确定如何解决这个问题。但我想到了两种方法:
方法一:
我创建了一个字典来计算某个项目出现的次数:
a = ['book','book','cards','book','foo','foo','computer']
import collections
def update_item_counts(item_counts, itemset):
for a in itemset:
item_counts[a] +=1
test = defaultdict(int)
update_item_counts(test, a)
print(test)
Out: defaultdict(<class 'int'>, {'book': 3, 'cards': 1, 'foo': 2, 'computer': 1})
Run Code Online (Sandbox Code Playgroud)
我想用这本词典过滤掉列表,但我不知道该怎么做。
方法二:我尝试编写一个列表理解,但它似乎不起作用:
res = [k for k in a if a.count > 2 in k]
Run Code Online (Sandbox Code Playgroud)