Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >StyleFrame row_index AttributeError:“int”对象没有属性“”value“”

StyleFrame row_index AttributeError:“int”对象没有属性“”value“”
EN

Stack Overflow用户
提问于 2021-03-02 07:25:54
回答 1查看 91关注 0票数 0

我正在尝试以编程方式创建一个电子表格来存储一些AWS数据,方法是采用Excel模板并向其中添加新数据。为此,我决定使用StyleFrame来保留格式。我已经设法将数据以我想要的格式连接在一起,但是当我试图将其写入Excel文件时,我总是遇到索引问题。

stacktrace的相关部分是:

代码语言:javascript
运行
AI代码解释
复制
File "/Users/jaybailey/PycharmProjects/CostReports/lambdas/build_cost_reports/build_cost_reports.py", line 143, in create_organisation_cost_report
    org_report.to_excel(create_report_name(organisation)).save()
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/styleframe/style_frame.py", line 421, in to_excel
    export_df.index = [row_index.value for row_index in export_df.index]
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/styleframe/style_frame.py", line 421, in <listcomp>
    export_df.index = [row_index.value for row_index in export_df.index]
AttributeError: 'int' object has no attribute 'value'

我尝试将dtype更改为"object",重置索引,并手动将其就地重置。我也尝试过使用调试器,这让我意识到我的错误--我影响的是数据帧,而不是样式帧。我发现StyleFrame上的row_indexes属性是一个由int组成的元组,这使得这个错误更有意义。我尝试手动更改它,但该属性是只读的。

考虑到row_indexes属性不能更改,它来自StyleFrame,并且缺少StyleFrame本身所要求的值,所以我决定在这里询问。这是我正在查看的代码部分。

代码语言:javascript
运行
AI代码解释
复制
org_report = styleframe.StyleFrame.read_excel(f'{organisation.type}{TEMPLATE_SUFFIX}')
report_data = transform_aws_service_costs_to_excel_rows(organisation_costs)
report_data = pandas.DataFrame(report_data)

# Used to make sure the data concatenates properly.
report_data.columns = org_report.columns


org_report.data_df = concat([org_report.data_df.iloc[:4], report_data,
                             org_report.data_df.iloc[5:]], axis=0).reset_index(drop=True)

org_report.to_excel(create_report_name(organisation)).save() # Error occurs here.

我知道helper函数很难让人完全理解。create_report_name只创建了一个"YYYY-MM-DD-Organisation_Name_Cost_Report.xlsx".类型的字符串report_data会生成以下输出:

代码语言:javascript
运行
AI代码解释
复制
                              TOTAL SPEND  ...  Monthly Change
0       Amazon Relational Database Service  ...          -4.38%
1   Amazon Elastic Compute Cloud - Compute  ...          -3.65%
2                              EC2 - Other  ...           1.25%
3                      AWS Premium Support  ...         -100.0%
4                         AmazonCloudWatch  ...          -2.36%
5                         Amazon Detective  ...          -0.45%
6            Amazon Simple Storage Service  ...           6.38%
7                           AWS CloudTrail  ...          -7.46%
8            Amazon Elastic Load Balancing  ...          -6.34%
9                               AWS Lambda  ...           -2.3%
10                                   Other  ...         255.49%

就在我尝试将其写入org_report文件之前,它看起来就像这样,其中大部分仍然填充着虚拟数据。

代码语言:javascript
运行
AI代码解释
复制
                               TOTAL SPEND 2 mo.ago Last Month Monthly Change
0               Total Organisational Spend      5.0        6.0            0.2
1                                      nan      nan        nan            nan
2                             AWS SERVICES      nan        nan            nan
3                                    Total      5.0        6.0            0.2
4       Amazon Relational Database Service   196994     188361         -4.38%
5   Amazon Elastic Compute Cloud - Compute   106007     102134         -3.65%
6                              EC2 - Other  72467.6    73373.5          1.25%
7                      AWS Premium Support  40442.2          0        -100.0%
8                         AmazonCloudWatch  32248.8    31488.9         -2.36%
9                         Amazon Detective  20903.7    20809.1         -0.45%
10           Amazon Simple Storage Service  19415.6    20655.3          6.38%
11                          AWS CloudTrail  12135.8      11230         -7.46%
12           Amazon Elastic Load Balancing  10617.6    9944.26         -6.34%
13                              AWS Lambda  8258.99    8069.12          -2.3%
14                                   Other  21762.7    77363.8        255.49%
15                           SUBCATEGORIES      nan        nan            nan
16                               DIRECTORS      nan        nan            nan
17                                   Total      5.0        6.0            0.2
18                                     nan      nan        nan            nan
19                         SHARED PRODUCTS      nan        nan            nan
20                                   Total      5.0        6.0            0.2
21                                     nan      nan        nan            nan
22                       Subcategory Total      5.0        6.0            0.2
23               Subcategory Cost Coverage      1.0        1.0            0.0

任何建议都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 09:59:41

问题主要出在这一行:

代码语言:javascript
运行
AI代码解释
复制
org_report.data_df = concat([org_report.data_df.iloc[:4], report_data,
                             org_report.data_df.iloc[5:]], axis=0).reset_index(drop=True)

这破坏了底层的.data_df,因为pd.concat.reset_index返回一个标准的DataFrame,而StyleFrame期望每个“单元”都包含一个包装器Container对象(该对象具有错误中缺少的.value属性)。

最佳实践是尽可能多地处理pandas级别的数据,并且仅在准备好开始设置样式和导出时才创建StyleFrame对象。

代码语言:javascript
运行
AI代码解释
复制
org_report = pd.read_excel(f'{organisation.type}{TEMPLATE_SUFFIX}')
report_data = transform_aws_service_costs_to_excel_rows(organisation_costs)
report_data = pandas.DataFrame(report_data)

# Used to make sure the data concatenates properly.
report_data.columns = org_report.columns

org_report= concat([org_report.iloc[:4], report_data,
                    org_report.iloc[5:]], axis=0).reset_index(drop=True)

sf = styleframe.StyleFrame(org_report) 
sf.to_excel(create_report_name(organisation)).save()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66434981

复制
相关文章
Druid 使用 Kafka 数据加载教程——下载和启动 Kafka
本教程演示了如何使用Druid的Kafka索引服务将数据从Kafka流加载到Apache Druid中。
HoneyMoose
2021/08/07
5490
Druid 使用 Kafka 数据加载教程——下载和启动 Kafka
Druid 使用 Kafka 将数据载入到 Kafka
现在让我们为我们的主题运行一个生成器(producer),然后向主题中发送一些数据!
HoneyMoose
2021/08/07
8060
Druid 使用 Kafka 将数据载入到 Kafka
Druid:通过 Kafka 加载流数据
本教程演示了如何使用 Druid 的 Kafka indexing 服务从 Kafka 流中加载数据至 Druid。
码哥字节
2020/06/02
1.8K0
Druid:通过 Kafka 加载流数据
从 Docker 中安装启动 Druid
在本 Docker 的快速指南中,我们将从 Docker Hub 下载 Apache Druid 镜像,在一台机器上安装并使用 Docker 和 Docker Compose 。
HoneyMoose
2021/08/05
1.4K0
从 Docker 中安装启动 Druid
Druid 加载 Kafka 流数据 Supervisor 配置
https://www.ossez.com/t/druid-kafka-supervisor/13664
HoneyMoose
2021/08/10
8850
Druid 加载 Kafka 流数据 Supervisor 配置
Druid 加载 Kafka 流数据的 索引属性(IndexSpec)
https://www.ossez.com/t/druid-kafka-indexspec/13673
HoneyMoose
2021/08/12
5630
Druid 加载 Kafka 流数据的 索引属性(IndexSpec)
Druid 加载 Kafka 数据后查询和清理数据
请访问 query tutorial 页面中的内容来了解如何针对新导入的数据运行一些查询。
HoneyMoose
2021/08/07
5750
Druid 加载 Kafka 数据后查询和清理数据
Druid 加载 Kafka 流数据配置可以读取和处理的流中数据格式
Kafka 索引服务(indexing service)支持 inputFormat 和 parser 来指定特定的数据格式。
HoneyMoose
2021/08/10
8880
Druid 加载 Kafka 流数据配置可以读取和处理的流中数据格式
Druid 加载 Kafka 流数据的性能配置参数 TuningConfig
tuningConfig 的配置是可选的,如果你不在这里对这个参数进行配置的话,Druid 将会使用默认的配置来替代。
HoneyMoose
2021/08/12
9890
Druid 加载 Kafka 流数据的性能配置参数 TuningConfig
sprongboot配置druid数据源使用druid监控
首先它是一个数据库连接池,负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。
废江_小江
2022/09/05
9130
Kafka 架构中 ZooKeeper 以怎样的形式存在?
Kafka 运行环境还需要涉及 ZooKeeper,Kafka 和 ZooKeeper 都是运行在 JVM 之上的服务。但是Kafka架构中 ZooKeeper 以怎样的形式存在?
码农架构
2021/03/10
2.4K0
Kafka 架构中 ZooKeeper 以怎样的形式存在?
Druid 加载 Kafka 流数据 KafkaSupervisorIOConfig 配置信息表
如上面表格的配置信息,我们可以对 Kafka 中的配置进行一些调整来满足特定的项目消息需求。
HoneyMoose
2021/08/10
6610
Druid 加载 Kafka 流数据 KafkaSupervisorIOConfig 配置信息表
Druid 0.15 版本启动错误
简单来说出现上面的错误的原因就是在你的 Druid 服务器上没有安装 Zookeeper。
HoneyMoose
2021/05/28
5920
Druid 0.15 版本启动错误
阿里Druid数据连接池在SSM框架中的配置使用
首先可以参考阿里在GitHub给出的一些说明:
似水的流年
2018/01/14
2.7K0
kafka删除topic中的数据_kafka删除数据
二、如果当前topic有使用过即有过传输过信息:并没有真正删除topic只是把这个topic标记为删除(marked for deletion)。想要彻底删除topic数据要经过下面两个步骤:
全栈程序员站长
2022/11/03
4.2K0
使用druid
1.1commons-dbutils-1.4.jarDbUtils是一个为简化JDBC操作的小类库 1.2mysql-connector-java-5.0.8-bin.jar包,用于java与Mysql数据库连接 1.3druid-1.1.5.jar 阿里巴巴的德鲁伊
2020/10/23
8230
使用druid
大数据Apache Druid(四):使用Imply进行Druid集群搭建
Imply基于Druid进行了一些组件的开发,是Druid的集成包,提供开源版本和商业版本,类似CDH一样,使安装Druid简化了部署,Imply也是Druid团队开发。
Lansonli
2022/08/20
6760
大数据Apache Druid(四):使用Imply进行Druid集群搭建
Druid 集群方式部署 —— 启动服务
如果你计划在 Master 服务器上还同时运行 ZK 的话,首先需要更新 conf/zoo.cfg 中的配置来确定你如何运行 ZK。 然后你可以选择在启动 ZK 的同时启动 Master 服务器。
HoneyMoose
2021/08/06
2070
Druid 集群方式部署 —— 启动服务
Druid 加载 Kafka 数据时直接提交一个 supervisor
为了能够直接启动一个服务,我们需要提交一个 supervisor 配置参数到 Druid overlord 进程中,你可以直接通过 Druid 的包运行下面的命令:
HoneyMoose
2021/08/07
3190
Druid 加载 Kafka 数据时直接提交一个 supervisor
在 Kubernetes 中通过 Apache Kafka 插件远程处理 Kafka 启动程序
当前版本的 Remoting over Apache Kafka plugin 远程处理需要用户手动配置整个系统,包括 zookeeper 、 kafka 和远程处理代理。它也不支持动态代理配置,因此很难实现具有伸缩性的扩展。我的项目旨在解决两个问题:1. 提供 Apache-Kafka 集群的现成解决方案。2. Kubernetes 集群中的动态代理配置。
LinuxSuRen
2019/11/14
8120

相似问题

如何根据州级数据框中的值在单个级数据框中创建新变量?

14

根据Pandas中另一个数据框的顶值创建新的数据框

239

如何根据另一个数据框中的数据填充数据框值

133

根据一个数据框中的值汇总另一个数据框中的数据

10

根据R中另一个数据框中的列从数据框中删除变量

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文