python - Pandas 从 excel 创建合并报告
问题描述
我有一个包含以下详细信息的 excel 文件。我正在尝试使用 panda 在 excel 中仅获取前 5 种语言及其总和
files language blank comment code
61 Java 1031 533 3959
10 Maven 73 66 1213
12 JSON 0 0 800
32 XML 16 74 421
7 HTML 14 16 161
1 Markdown 23 0 39
1 CSS 0 0 1
下面是我的代码
import pandas as pd
from openpyxl import load_workbook
df = pd.read_csv("myfile_cloc.csv", nrows=20)
#df = df.iloc[1:]
top_five = df.head(5)
print(top_five)
print(top_five['language'])
print(top_five['code'].sum())
d = {'Languages (CLOC) (Top 5 Only)': "", 'LOC (CLOC)Only Code': 0}
newdf = pd.DataFrame(data=d)
newdf['Languages (CLOC) (Top 5 Only)'] = str(top_five['language'])
newdf['LOC (CLOC)Only Code'] = top_five['code'].sum()
#Load excel to append the consolidated info
writer = newdf.ExcelWriter("myfile_cloc.xlsx", engine='openpyxl')
book = load_workbook('myfile_cloc.xlsx')
writer.book = book
newdf.to_excel(writer, sheet_name='top_five', index=False)
writer.save()
在这些行中需要建议
newdf['Languages (CLOC) (Top 5 Only)'] = str(top_five['language'])
newdf['LOC (CLOC)Only Code'] = top_five['code'].sum()
以便预期输出可以是
Languages (CLOC) (Top 5 Only) LOC (CLOC)Only Code
Java,Maven,JSON,XML,HTML 6554
目前出现错误
raise ValueError('If using all scalar values, you must pass' ValueError: If using all scalar values, you must pass an index
解决方案
尝试这个,
解决此使用 index
属性的一种方法
a=df.head()
df=pd.DataFrame({"Languages (CLOC) (Top 5 Only)": ','.join(a['language'].unique()),"LOC (CLOC)Only Code":a['code'].sum()},index=range(1))
解决这个问题的另一种方法是from_records
在 Dataframe 中使用和传递 dict 列表。
df=pd.DataFrame.from_records([{"Languages (CLOC) (Top 5 Only)": ','.join(a['language'].unique()),"LOC (CLOC)Only Code":a['code'].sum()}])
输出:
Languages (CLOC) (Top 5 Only) LOC (CLOC)Only Code
0 Java,Maven,JSON,XML,HTML 6554
推荐阅读
- spring - 未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值
- mockito - Mockito junit 5 模拟构造函数
- java - 获取消息说话失败:未绑定到 TTS 引擎
- python - 错误:mysqlclient-1.4.6-cp38-cp38-win_amd64.whl 不是此平台支持的轮子
- node.js - 使用 Yarn 安装节点包或 Node_Modules 时出现“无法获取本地颁发者证书”错误
- python - PyQt5 按钮单击事件未在单击预期按钮时触发
- javascript - Lodash过滤器给定具有多个条件的json数组
- reactjs - 从 React 容器获取 props 到功能组件
- python - macOS Catalina 或 Big Sur 上的“import cppyy”异常
- r - R 中 mlp 的归一化(mnist 数据集)