已经有了图书借阅记录的数据文件lending.dat,每个记录中包括了如下信息:uid,bid,title,date,结合图书借阅记录,查询每年借的最多的五本书及其次数
时间: 2023-10-08 11:05:50 浏览: 150
Book-Lending
可以使用Python中的pandas库和datetime库来处理这个问题。
首先,读取lending.dat文件并将其转换成DataFrame格式:
``` python
import pandas as pd
df = pd.read_csv('lending.dat', sep='\t', names=['uid', 'bid', 'title', 'date'])
```
接下来,将日期转换成年份,并且计算每年每本书的借阅次数:
``` python
df['year'] = pd.to_datetime(df['date']).dt.year
df_year_book_count = df.groupby(['year', 'bid']).size().reset_index(name='count')
```
然后,找到每年借阅次数最多的五本书:
``` python
top5_books = []
for year in df_year_book_count['year'].unique():
df_year = df_year_book_count[df_year_book_count['year'] == year]
df_year_sorted = df_year.sort_values('count', ascending=False).head(5)
top5_books.append(df_year_sorted)
top5_books = pd.concat(top5_books, ignore_index=True)
```
最后,输出结果:
``` python
print(top5_books)
```
输出结果应该类似于这样:
```
year bid count
0 2018 9787544278 10
1 2018 9787108000 9
2 2018 9787550014 7
3 2018 9787108031 6
4 2018 9787108055 6
5 2019 9787544278 15
6 2019 9787540485 12
7 2019 9787540461 10
8 2019 9787550014 9
9 2019 9787562455 9
...
```
其中,每一行代表一本书在某一年的借阅次数。对于每年,前五本书按照借阅次数从高到低排列。
阅读全文