pandas - Excel写入以在具有多个工作表的同一张工作表上获取多个数据框并格式化数据
问题描述
每张工作表需要像什么我试图将 6 个数据帧写入一个 Excel 工作表,然后将 6 个不同的数据帧写入同一个工作簿中的另一个 Excel 工作表。我知道下面的代码不是很好,但它可以将数据框放入同一张表中并隔开。
我还尝试将所有数据框的第 2、第 3 和第 4 列分别格式化为带有逗号 (1,000)、美元 ($1,000.00) 和百分比 (50.12%) 的数字,我真的可以使用任何人的帮助。先感谢您
with pd.ExcelWriter(r'C:\Users\SS012420\Desktop\LoanPool_07082021_.xlsx',engine='xlsxwriter') as writer:
df.to_excel(writer, sheet_name='Pooled_Loans')
summary.to_excel(writer, sheet_name='Summary')
GEO8.to_excel(writer, sheet_name = 'Strat_Table8')
OTM8.to_excel(writer, sheet_name = 'Strat_Table8', startcol = (2 + len(GEO8.columns)), startrow = 0)
RTM8.to_excel(writer, sheet_name = 'Strat_Table8', startcol = (2+ len(GEO8.columns) + 2 + len(OTM8.columns)), startrow = 0)
FICO8.to_excel(writer, sheet_name = 'Strat_Table8', startcol = (2+len(GEO8.columns) + 2 + len(OTM8.columns) +2 + len(RTM8.columns)), startrow = 0)
APR8.to_excel(writer, sheet_name = 'Strat_Table8', startcol = (2+len(GEO8.columns) + 2 + len(OTM8.columns) +2 + len(RTM8.columns)+ 2 + len(FICO8.columns)), startrow = 0)
PB8.to_excel(writer, sheet_name = 'Strat_Table8', startcol = (2+len(GEO8.columns) + 2 + len(OTM8.columns) +2 + len(RTM8.columns)+ 2 + len(FICO8.columns) + 2 + len(APR8.columns)), startrow = 0)
GEO12.to_excel(writer, sheet_name = 'Strat_Table12')
OTM12.to_excel(writer, sheet_name = 'Strat_Table12', startcol = (2 + len(GEO12.columns)), startrow = 0)
RTM12.to_excel(writer, sheet_name = 'Strat_Table12', startcol = (2+ len(GEO12.columns) + 2 + len(OTM12.columns)), startrow = 0)
FICO12.to_excel(writer, sheet_name = 'Strat_Table12', startcol = (2+len(GEO12.columns) + 2 + len(OTM12.columns) +2 + len(RTM12.columns)), startrow = 0)
APR12.to_excel(writer, sheet_name = 'Strat_Table12', startcol = (2+len(GEO12.columns) + 2 + len(OTM12.columns) +2 + len(RTM12.columns)+ 2 + len(FICO12.columns)), startrow = 0)
PB12.to_excel(writer, sheet_name = 'Strat_Table12', startcol = (2+len(GEO12.columns) + 2 + len(OTM12.columns) +2 + len(RTM12.columns)+ 2 + len(FICO12.columns) + 2 + len(APR12.columns)), startrow = 0)
GEO19.to_excel(writer, sheet_name = 'Strat_Table19')
OTM19.to_excel(writer, sheet_name = 'Strat_Table19', startcol = (2 + len(GEO19.columns)), startrow = 0)
RTM19.to_excel(writer, sheet_name = 'Strat_Table19', startcol = (2+ len(GEO19.columns) + 2 + len(OTM19.columns)), startrow = 0)
FICO19.to_excel(writer, sheet_name = 'Strat_Table19', startcol = (2+len(GEO19.columns) + 2 + len(OTM19.columns) +2 + len(RTM19.columns)), startrow = 0)
APR19.to_excel(writer, sheet_name = 'Strat_Table19', startcol = (2+len(GEO19.columns) + 2 + len(OTM19.columns) +2 + len(RTM19.columns)+ 2 + len(FICO19.columns)), startrow = 0)
PB19.to_excel(writer, sheet_name = 'Strat_Table19', startcol = (2+len(GEO19.columns) + 2 + len(OTM19.columns) +2 + len(RTM19.columns)+ 2 + len(FICO19.columns) + 2 + len(APR19.columns)), startrow = 0)
解决方案
对于给定的数据框尝试作为一个例子......
#add $ (dollar) and commas to column
df['aNumberSeries'] = df.apply(lambda x: "${:,}".format(x['aNumberSeries']), axis=1)
#add % to a column of floats
df['aFloatSeries'] = df['aFloatSeries'].astype(float).map("{:.2%}".format)
示例输入:
aNumberSeries aFloatSeries
0 1404338840 0.5670
1 1366938189 0.2345
2 330267887 0.5000
3 269603400 0.4220
示例输出:
aNumberSeries aFloatSeries
0 $1,404,338,840.0 56.70%
1 $1,366,938,189.0 23.45%
2 $330,267,887.0 50.00%
3 $269,603,400.0 42.20%
推荐阅读
- image - 更快地调整图像大小
- c# - DialogInterface.OnClickListener() 在“DialogInterface”类型中不存在 Xamarin Forms
- c# - 如何搜索除一个 C# 之外的所有目录
- python - 在python中填充嵌套数组
- svg - SVG Xlink:href 特定 URL 给出错误
- c# - 如何从另一个类更改字符串值?
- r - 如何使用 R 中的 tidyverse 创建一个将不同类别添加到表中的函数
- sql - 使用 SQL 计算金额
- swift - 如何在 Spritekit 和 Swift 5 中保存分数
- c# - 无法读取数据库架构