我有一个问题,在这个例子中简化了。考虑这个 Pandas DataFrame,df_a:
df_a=pd.DataFrame([['1001',34.3,'red'],['1001',900.04,'red'],['1001',776,'red'],['1003',18.95,'green'],['1004',321.2,'blue']],columns=['id','amount','name'])
id amount name
0 1001 34.30 red
1 1001 900.04 red
2 1001 776.00 red
3 1003 18.95 green
4 1004 321.20 blue
Run Code Online (Sandbox Code Playgroud)
我想通过将数量相加到一个新的 DataFrame 并创建一个新的类似“arange”的索引来对这个数据帧进行分组。这应该是我想要的结果:
id amount
0 1001 1710.34
1 1003 18.95
2 1004 321.20
Run Code Online (Sandbox Code Playgroud)
但是我的努力创建了一个系列(我想要一个 DataFrame 作为结果):
df_a.groupby(['id'])['amount'].sum()
id
1001 1710.34
1003 18.95
1004 321.20
Name: amount, dtype: float64
Run Code Online (Sandbox Code Playgroud)
或者根据 id 列创建一个新索引:
pd.DataFrame(df_a.groupby(['id'])['amount'].sum())
amount
id
1001 1710.34
1003 18.95
1004 321.20
Run Code Online (Sandbox Code Playgroud)
我也试过传递 index 参数,但这也不起作用:
pd.DataFrame(df_a.groupby(['id'])['amount'].sum(),index=df_a.index.values)
amount
0 NaN
1 NaN
2 NaN
3 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Amazon Sagemaker 中部署现有的 Scikit-Learn 模型。这个模型不是在 SageMaker 上训练的,而是在我的机器上本地训练的。
在我的本地(Windows)计算机上,我已将模型保存为 model.joblib 并将模型压缩为 model.tar.gz。
接下来,我将此模型上传到我的 S3 存储桶(“my_bucket”),路径为 s3://my_bucket/models/model.tar.gz。我可以在 S3 中看到 tar 文件。
但是当我尝试部署模型时,它不断给出错误消息“无法提取模型数据存档”。
.tar.gz 是通过在 powershell 命令窗口中运行“tar -czf model.tar.gz model.joblib”在我的本地计算机上生成的。
上传到S3的代码
import boto3
s3 = boto3.client("s3",
region_name='eu-central-1',
aws_access_key_id=AWS_KEY_ID,
aws_secret_access_key=AWS_SECRET)
s3.upload_file(Filename='model.tar.gz', Bucket=my_bucket, Key='models/model.tar.gz')
Run Code Online (Sandbox Code Playgroud)
创建估计器和部署的代码:
import boto3
from sagemaker.sklearn.estimator import SKLearnModel
...
model_data = 's3://my_bucket/models/model.tar.gz'
sklearn_model = SKLearnModel(model_data=model_data,
role=role,
entry_point="my-script.py",
framework_version="0.23-1")
predictor = sklearn_model.deploy(instance_type="ml.t2.medium", initial_instance_count=1)
Run Code Online (Sandbox Code Playgroud)
错误信息:
错误消息:UnexpectedStatusException:托管端点 sagemaker-scikit-learn-2021-01-24-17-24-42-204 时出错:失败。原因:无法从 URL“s3://my_bucket/models/model.tar.gz”提取容器“container_1”的模型数据存档。请确保 URL 中的对象是有效的 tar.gz 存档
有没有办法查看存档无效的原因?