python实现在"\\168.63.22.177\台账\境内互换\境内收益互换-230522-逐笔盯保"中的"持仓明细"sheet的B列合同编号中搜索['HTSC-0158-PAZQ-0017-ITRS-221129-1', 'HTSC-0161-PAZQ-0018-ITRS-221206-1', 'HTSC-0178-GDZQ-0010-ITRS-221213-2', 'HTSC-0045-GDZQ-0005-ITRS-230215-1']这四笔合约,找到对应行,输出对应行的S列合约乘数
时间: 2023-07-31 18:13:19 浏览: 137
以下是用Python实现搜索并输出结果的代码:
```python
import pandas as pd
# 读入Excel文件,注意设置读取的sheet名
df = pd.read_excel(
"\\\\168.63.22.177\\台账\\境内互换\\境内收益互换-230522-逐笔盯保.xlsx",
sheet_name="持仓明细"
)
# 搜索B列中指定的合同编号
target_contracts = [
'HTSC-0158-PAZQ-0017-ITRS-221129-1',
'HTSC-0161-PAZQ-0018-ITRS-221206-1',
'HTSC-0178-GDZQ-0010-ITRS-221213-2',
'HTSC-0045-GDZQ-0005-ITRS-230215-1'
]
mask = df["合同编号"].isin(target_contracts)
# 输出对应行的S列合约乘数
print(df.loc[mask, "S列合约乘数"])
```
注意,上述代码中的 "\\" 起到了转义的作用,将 "\\\\168.63.22.177" 转义为 "\\\\"。如果直接将IP地址写在字符串中,会因为 "\t" 被当作TAB字符,无法正确解析。
相关问题
“\168.63.22.177\台账\境内互换\境内收益互换-230515”表里的”现金流水表“sheet的D列流水确认日数据类型为日期yyyy/mm/dd,python实现读取D列为2023年5月15日的B列合同编号
?”
感谢您的提问。您可以使用Python中的pandas库来读取Excel表格数据,然后根据条件筛选出需要的行和列数据。具体实现步骤如下:
首先,您需要安装pandas库。
然后,您可以使用以下代码来读取Excel表格数据:
```
import pandas as pd
filename = r'\168.63.22.177\台账\境内互换\境内收益互换-230515.xlsx'
sheet_name = '现金流水表'
df = pd.read_excel(filename, sheet_name=sheet_name)
```
接下来,您可以使用以下代码来筛选出符合条件的行和列数据:
```
contract_id = df[df['D'] == '2023/05/15']['B'].values[0]
```
其中,`df[df['D'] == '2023/05/15']` 表示筛选出流水确认日为2023年5月15日的所有行,`['B']` 表示取出该行的合同编号列,最后使用 `values[0]` 取出该列的第一个值,即为您需要的合同编号。
希望以上代码对您有所帮助。
python實現讀取“\168.63.22.177\台账\境内互换”下的excel文件“境内收益互换-230522-逐笔盯保”,讀取sheet“現金流水表”,讀取“流水確認日”為“2023/5/19”的所有B列“交易確認書編號”,若沒有值,則輸出“當日無平倉逐筆合約”,若有值,將讀取的交易確認書編號在excel文件“境内收益互换-230522-逐笔盯保”的sheet“持倉明細”中的B列“合同編號”中搜索,找到對應行,輸出該筆合約的S列合約乘數和Q列數量,同時將讀取的將以確認書編號在excel文件“境内收益互换-230522-逐笔盯保”的sheet“現金流水表”中的B列“交易確認書編號”中搜索,找到對應行,輸出該筆合約的J列終止數量、I列終止標的價格
好的,根据您的要求,可完成以下 Python 代码实现:
```python
import openpyxl
# 指定文件路径和表名
file_path = r"\\168.63.22.177\台账\境内互换\境内收益互换-230522-逐笔盯保.xlsx"
sheet_name_cash_flow = "現金流水表"
sheet_name_position = "持倉明細"
# 打开工作簿并读取指定表
wb = openpyxl.load_workbook(file_path)
sheet_cash_flow = wb[sheet_name_cash_flow]
sheet_position = wb[sheet_name_position]
# 目标日期
target_date = "2023/5/19"
# 查找目标日期的交易确认书编码
confirm_num_list = []
for row in sheet_cash_flow.iter_rows(min_row=2, values_only=True):
if row[2] == target_date:
confirm_num_list.append(row[1])
if not confirm_num_list:
print("当日无平仓逐笔合约")
else:
for confirm_num in confirm_num_list:
# 在持仓明细中查找合同编码
for row in sheet_position.iter_rows(min_row=2, values_only=True):
if row[0] == confirm_num:
print("合同编码:", confirm_num)
print("合同乘数:", row[18])
print("合同数量:", row[17])
print("终止数量:", row[9])
print("终止标的价:", row[8])
```
请问还有其他问题吗?
阅读全文