python代码编写,从文件待挑票报账单.xlsx中挑选出满足条件的指定n张的票据并保存到挑票结果报账单.xlsx中,挑票规则: 1. 删除背书代签收及出票行为某些公司的票据; 2. 筛选出到期日为近几个月的票据; 3. 筛选去除包含指定商家; 4. 匹配业务名单商家; 5. 分配大银行; 6. 尾差金额小于5万
时间: 2024-03-08 15:48:00 浏览: 129
好的,根据您的要求,我已经了解了您的问题。首先,我们需要安装 `pandas`、`openpyxl` 和 `xlrd` 这三个库,因为这些库可以帮助我们读取和写入 Excel 文件。您可以通过以下命令安装这些库:
```
pip install pandas openpyxl xlrd
```
接下来,我们需要编写代码来实现您的需求。以下是我的代码解决方案:
```python
import pandas as pd
from datetime import datetime, timedelta
# 读取待挑票报账单.xlsx
df = pd.read_excel('待挑票报账单.xlsx')
# 删除背书代签收及出票行为某些公司的票据
df = df[~df['出票人'].str.contains('公司A|公司B|公司C|...')]
df = df[~df['收款人'].str.contains('公司A|公司B|公司C|...')]
# 筛选出到期日为近几个月的票据
today = datetime.now()
n_months_ago = today - timedelta(days=30 * n)
df = df[df['到期日'] > n_months_ago]
# 筛选去除包含指定商家
df = df[~df['票面信息'].str.contains('商家A|商家B|商家C|...')]
# 匹配业务名单商家
df = df[df['收款人'].isin(['商家D', '商家E', '商家F', ...])]
# 分配大银行
df = df.groupby(['银行']).apply(lambda x: x.nlargest(n, '票据金额'))
# 尾差金额小于5万
df = df[df['票据金额'] - df['已付金额'] < 50000]
# 保存到挑票结果报账单.xlsx中
df.to_excel('挑票结果报账单.xlsx', index=False)
```
上述代码中,`n` 是您指定的张数,您需要将其替换为您需要的具体值。同时,您需要将代码中 `公司A|公司B|公司C|...`、`商家A|商家B|商家C|...`、`商家D`、`商家E`、`商家F` 和 `...'` 等部分替换为您具体的公司和商家名称。
希望这个代码解决方案对您有所帮助!
阅读全文