python使用pandas實現讀取“\168.63.22.177\台账\境内互换”下的excel文件“境内收益互换-230522-逐笔盯保”,讀取sheet“現金流水表”,讀取“流水確認日”為“2023/5/19”的所有B列“交易確認書編號”,若沒有值,則輸出“當日無平倉逐筆合約”,若有值(也有可能不止一個值),將讀取的交易確認書編號在excel文件“境内收益互换-230522-逐笔盯保”的sheet“持倉明細”中的B列“合同編號”中搜索,找到對應行,輸出該筆合約的S列合約乘數和Q列數量,同時將讀取的將以確認書編號在excel文件“境内收益互换-230522-逐笔盯保”的sheet“現金流水表”中的B列“交易確認書編號”中搜索,找到對應行,輸出該筆合約的J列終止數量、I列終止標的價格
时间: 2023-07-16 09:14:57 浏览: 77
使用pandas进行excel文件的读取写入
5星 · 资源好评率100%
好的,根据您的要求,我可以通过使用Python中的pandas包来实现您的需求。
首先,我需要使用pandas的read_excel函数来读取Excel文件,并指定需要读取的sheet和需要筛选的条件,如下所示:
```python
import pandas as pd
df = pd.read_excel(r'\\168.63.22.177\台账\境内互换\境内收益互换-230522-逐笔盯保.xlsx',
sheet_name='現金流水表',
usecols=['交易確認書編號', '流水確認日', '合同編號'])
df = df[df['流水確認日'] == '2023/5/19']
```
接着,我需要通过判断筛选出来的数据是否为空来输出相应的结果:
```python
if df.empty:
print('当日无平仓逐笔合约')
else:
confirm_nums = df['交易確認書編號'].tolist()
for confirm_num in confirm_nums:
detail_df = pd.read_excel(r'\\168.63.22.177\台账\境内互换\境内收益互换-230522-逐笔盯保.xlsx',
sheet_name='持倉明細',
usecols=['合同編號', '合約乘數', '數量'])
detail_df = detail_df[detail_df['合同編號'] == confirm_num]
if not detail_df.empty:
multiplier = detail_df.iloc[0]['合約乘數']
quantity = detail_df.iloc[0]['數量']
cash_flow_df = pd.read_excel(r'\\168.63.22.177\台账\境内互换\境内收益互换-230522-逐笔盯保.xlsx',
sheet_name='現金流水表',
usecols=['交易確認書編號', '終止標的價格', '終止數量'])
cash_flow_df = cash_flow_df[cash_flow_df['交易確認書編號'] == confirm_num]
if not cash_flow_df.empty:
terminate_price = cash_flow_df.iloc[0]['終止標的價格']
terminate_quantity = cash_flow_df.iloc[0]['終止數量']
print('交易确认书编码为%s的合约乘数为%s,数量为%s,终止标的价格为%s,终止数量为%s' % (
confirm_num, multiplier, quantity, terminate_price, terminate_quantity))
else:
print('找不到交易确认书编码为%s的现金流水记录' % confirm_num)
else:
print('找不到合同编码为%s的持仓明细记录' % confirm_num)
```
这样,我就可以实现您的需求了。希望能对您有所帮助。
阅读全文