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 18:14:49 浏览: 76
非常感谢您的问题。根据您的描述,您可以使用pandas库中的read_excel函数读取指定路径下的Excel文件,并将数据储存为DataFrame对象。读取完毕后,您可以使用bool索引和loc函数筛选出特定条件下的数据,并在该数据的基础上进行后续的操作。
以下是可能的代码实现:
```python
import pandas as pd
# 读取Excel文件
file_path = r'\\168.63.22.177\台账\境内互换\境内收益互换-230522-逐笔盯保.xlsx'
df_cash = pd.read_excel(file_path, sheet_name='現金流水表', dtype={'交易確認書編號': str})
df_position = pd.read_excel(file_path, sheet_name='持倉明細', dtype={'合同編號': str})
# 筛选出符合条件的交易確認書編號
confirm_num = df_cash.loc[df_cash['流水確認日'] == '2023/5/19', '交易確認書編號'].values
if len(confirm_num) == 0:
print('當日無平倉逐筆合約')
else:
confirm_num = confirm_num[0] # 假设只有一个符合条件的交易確認書編號
position_row = df_position.loc[df_position['合同編號'] == confirm_num]
contract_size = position_row.at[position_row.index[0], '合约乘数']
quantity = position_row.at[position_row.index[0], '数量']
cash_row = df_cash.loc[df_cash['交易確認書編號'] == confirm_num]
terminate_qty = cash_row.at[cash_row.index[0], '终止数量']
terminate_price = cash_row.at[cash_row.index[0], '终止标的价格']
print(f'合约乘数: {contract_size}, 数量: {quantity}, 终止数量: {terminate_qty}, 终止标的价格: {terminate_price}')
```
需要注意的是,上述代码中的路径和文件名、sheet名、列名等都需要根据具体情况进行修改。此外,代码中可能存在一些错误,需要根据实际情况进行调整和修改。希望能够对您有所帮助。
阅读全文