#读取 学号姓名名册.xls文件,只保留['学号','姓名']两列数据 # 依次遍历data文件夹下的每个“签到详情.xlsx”文件,并将文件中的签到情况按name_id中的排列进行追加 name_id.head()
时间: 2024-11-20 07:33:46 浏览: 9
您似乎想要从两个Excel文件中提取特定信息并按照指定顺序合并数据。首先,我们假设您有一个名为`学号姓名名册.xls`的文件,它包含学号和姓名这两列。要读取这个文件,您可以使用pandas库的`read_excel`函数:
```python
import pandas as pd
# 读取'学号姓名名册.xls'文件,仅保留'学号'和'姓名'两列
data_name = pd.read_excel('学号姓名名册.xls', usecols=['学号', '姓名'], names=['学号', '姓名'])
```
这里`usecols`参数指定了需要的列,`names`用于指定新列的名称,如果原列名就是'学号'和'姓名',可以省略。
接下来,您提到要遍历`data`文件夹下的所有名为`签到详情.xlsx`的文件,并将签到情况追加到之前的数据上。为了做到这一点,我们需要假设每个`签到详情.xlsx`文件也有'学号'和'姓名'列,且`name_id`是一个指示顺序的列表。我们可以使用`glob`模块找到所有的Excel文件,然后逐个处理:
```python
from glob import glob
# 获取data文件夹下所有'签到详情.xlsx'文件
sign_in_files = glob('data/*.xlsx')
# 假设name_id是一个有序的list或DataFrame,代表合并顺序
for sign_in_file in sign_in_files:
# 读取当前签到文件,同样只保留'学号'和'姓名'
sign_in_data = pd.read_excel(sign_in_file, usecols=['学号', '姓名'], names=['学号', '姓名'])
# 确保名册和签到数据有相同的索引结构(如都是基于学号)
data_name = data_name.set_index('学号')
sign_in_data = sign_in_data.set_index('学号')
# 按照name_id的顺序追加签到数据
data_name = data_name.combine_first(sign_in_data)
# 最终结果存储回data_name变量中
```
阅读全文