我需要做的:
- 在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