Python代码去取Excel打卡记录,然后生成考勤汇总
时间: 2024-12-21 12:26:58 浏览: 3
统计考勤python程序
在Python中,我们可以使用pandas库来处理Excel文件并进行数据操作。首先,你需要安装`pandas`, `openpyxl`和`xlrd`库,分别用于数据分析、读写Excel 2010及以上版本的xlsx文件以及读取旧版xls文件。
以下是一个简单的步骤说明:
1. 安装所需库:
```bash
pip install pandas openpyxl xlrd
```
2. 使用pandas读取Excel文件:
```python
import pandas as pd
# 指定Excel文件路径
excel_file = '打卡记录.xlsx'
df_excel = pd.read_excel(excel_file) # 如果是xls文件,则使用pd.read_excel(file, engine='xlrd')
# 确保表格包含打卡时间列(如'Time'),假设它位于第一列
time_column = df_excel.iloc[:, 0]
```
3. 数据预处理:
检查数据是否按日期排序,并处理缺失值(如果需要)。例如,删除空行或填充/转换时间戳:
```python
df_excel = df_excel.sort_values(by=time_column)
df_excel.dropna(subset=[time_column], inplace=True) # 删除有缺失值的行
```
4. 考勤汇总:
```python
# 创建一个新的DataFrame来存储考勤汇总
attendance_summary = pd.DataFrame()
# 分段计算每天的出勤情况(例如,迟到、正常、早退)
for day, group in df_excel.groupby([time_column.dt.date]):
on_time_count = len(group[group['Time'] == 'On Time'])
late_count = len(group[group['Time'] == 'Late'])
early_count = len(group[group['Time'] == 'Early'])
summary_row = {'Date': day, 'On_Time': on_time_count, 'Late': late_count, 'Early': early_count}
attendance_summary = attendance_summary.append(summary_row, ignore_index=True)
# 可能还需要调整列名或其他细节,具体取决于你的需求
```
5. 保存结果到新的Excel文件:
```python
attendance_summary.to_excel('考勤汇总.xlsx', index=False) # 将汇总数据写回Excel文件
```
阅读全文