整体代码如下:
import pandas as pd
DATA=pd.read_table(r'D:\Users\admin\Desktop\6067188.TXT',encoding='gb2312')
# DATA=pd.read_table(r'D:\Users\admin\Desktop\6067188 (1).TXT',encoding='gb2312')
flag=[]
for i in range(DATA.shape[0]):
if '------' in DATA.loc[i].values[0]:
flag.append(i)
print(flag)
# data1=data.iloc[flag[2]+1:flag[3],]
def transaction_record():
'''
根据合约分组统计成交记录表的手续费和平仓盈亏
:return:
'''
for i in range(flag[2]+1,flag[3]-1):
if i == flag[2]+1:
a = pd.DataFrame(columns=list(map(lambda x: x.strip(), DATA.loc[i].values[0].split('|')))[1:-1])
pin = 0
else:
a.loc[pin] = list(map(lambda x: x.strip(), DATA.loc[i].values[0].split('|')))[1:-1]
pin += 1
# print(list(map(lambda x: x.strip(), data.loc[i].values[0].split('|')))[1:-1])
data=a.iloc[:,[3,10,11]]
data.手续费=data.手续费.map(lambda x: float(x))
data.平仓盈亏=data.平仓盈亏.map(lambda x: float(x))
data2=data.groupby(["合约"])['手续费','平仓盈亏'].sum()
with pd.ExcelWriter(r'D:\\Users\\admin\\Desktop\\save\成交记录表.xlsx') as writer:
data2.to_excel(writer, sheet_name='sheet1')
def position_details():
'''
根据合约分组统计持仓明细表的盯市盈亏
:return:
'''
for i in range(flag[4]+1,flag[5]-1):
if i == flag[4]+1:
a = pd.DataFrame(columns = list(map(lambda x: x.strip(), DATA.loc[i].values[0].split('|')))[1:-1])
pin = 0
else:
a.loc[pin] = list(map(lambda x: x.strip(), DATA.loc[i].values[0].split('|')))[1:-1]
pin += 1
# print(list(map(lambda x: x.strip(), DATA.loc[i].values[0].split('|')))[1:-1])
# print(a)
data=a.iloc[:,[2,11]]
data.盯市盈亏 = data.盯市盈亏.map(lambda x: float(x))
data2 = data.groupby(["合约"])['盯市盈亏'].sum()
with pd.ExcelWriter(r'D:\\Users\\admin\\Desktop\\save\持仓明细.xlsx') as writer:
data2.to_excel(writer, sheet_name='sheet1')
if __name__ == '__main__':
# transaction_record()
position_details()