Openpyxl创建数据框架与表名和特定单元格值?



我需要做的:

  • 在Python/Pandas中打开Excel表格
  • 用[name, balance]创建df

例子:

<表类> 名称 平衡 tbody><<tr>琼斯部45408 .83点史密斯部38596 .20能源部部长28596 .20

要获取单元格值,首先将data_only=True设置在load_workbook上,否则最终可能会得到单元格公式。要获得工作表的最后一行,您可以使用ws.max_row。将前面的命令与已经创建的数据框和apply结合起来,为每个工作表命名一个函数,以获取工作表G列(wb[x][f'G{wb[x].max_row}'])处的最后一个值。

import pandas as pd
from openpyxl import load_workbook
src_file = 'test_balance.xlsx'
wb = load_workbook(filename = src_file, data_only=True)
df = pd.DataFrame(data=wb.sheetnames, columns=["name"])
df["balance"] = df.name.apply(lambda x: wb[x][f'G{wb[x].max_row}'].value)
print(df)
df
name   balance
0        Jones Ministry  15100.08
1        Smith Ministry  45408.83
2        Stark Ministry   1561.75
3          Doe Ministry   7625.75
4       Bright Ministry   3078.30
5      Lincoln Ministry   6644.59
6     Martinez Ministry  11500.54
7       Patton Ministry   9782.65
8         Rich Ministry   8429.88
9        Seitz Ministry   2974.58
10       Bhiri Ministry    622.83
11  Pignatelli Ministry  34992.05
12      Cortez Ministry   -283.48
13      Little Ministry  13755.80
14     Johnson Ministry  -2035.31

最新更新