1.在《邃晓信-功能-公式系统-自界说数据搞定器》中不错手工添加数据蘇暢 麻豆,并导出为txt文本,但手工只可添加几个,多了就资料了。
2.在职意行情列表页上,实行《系统-数据导出》不错将几千条数据导出为txt文本,
于是决定用第2步数据来更新第1步的数据,代码如下:
?1234567891011121314151617181920212223242526272829#encoding=utf-8import re# read filedic={}pattern="([0-9]{6})\s+([一-龥]+)\s+(-?[0-9]+\.[0-9]*|-?[0-9]+)\s+(-?[0-9]+\.[0-9]*|-?[0-9]+)\s+(-?[0-9]+\.[0-9]*|-?[0-9]+)\s+(-?[0-9]+\.[0-9]*|-?[0-9]+)\s+(-?[0-9]+\.[0-9]*|-?[0-9]+)\s+(-?[0-9]+\.[0-9]*|-?[0-9]+)"with open(r'D:\new_hrzq_v6\T0002\export\沪深A股.txt') as infile: for line in infile: list=re.findall(pattern,line) if len(list)>0: code=list[0][0] name=list[0][7] dic[code]=name# concat linessn=0lines=""for code,name in dic.items(): if str(code)[0]=="6": sn=1 else: sn=0 line=str(sn)+"|"+code+"|"+name+"|"+str("0.000")+"\n" lines=lines+line# write filewith open(r'D:\new_hrzq_v6\外部数据(字符串,数值)_1.txt','w') as outfile: outfile.write(lines)print("ok")3.导出的自界说数据怎样用呢?答:在《行谍报价 的标题栏上点鼠标右键-取舍自界说数据》,就可将相应的“自界说数据”浮现在行谍报价列表中了。
上述代码在使用流程中发现存bug,原因是有的股票称呼中有空格,还有*ST 、A 、TCL、GYQ、N、-U、-UW、-WD等笔墨,代码中的正则抒发式不成正确匹配,需要改一下正则抒发式。
其后用pandas重写,在读xls时际遇编码问题,用read_csv read_html openpyxl xlrd ,加上参数cp936 gb18030 utf-8-sig utf16LE等等完全不好使。
原因似乎是由于措施生成的xls骨子是csv,且格式不律例,然而用wps浮现宽泛?搞不解白具体原因!
最终取舍逐行读文献知道,倒是简单:
?123456789101112131415161718192021222324252627#encoding=utf-8import pandas as pdfrom io import StringIOpath1 = r"沪深A股.xls"path2 = r"外部数据(字符串,数值)_1.txt"listdf = []f= open(path1, 'r')next(f)next(f)for line in f: linearr = line.strip().split('\t') if(len(linearr))>7: listrow = [linearr[0].strip("=").strip("\""),linearr[7]] listdf.append(listrow) f.close()df=pd.DataFrame(data=listdf,columns=['1','2'])df.insert(loc=0, column='0', value="0") df['0']=df['1'].apply(lambda x:1 if x[0]=="6" else 0)df.insert(loc=3, column='3', value="0.000") print(df.shape)print(df.iloc[0:3])df.to_csv(path2,sep='|',header=0,index=0)国产视频偷拍a在线观看
生成两个文献的版块
?1234567891011121314151617181920212223242526272829303132333435363738#encoding=utf-8import pandas as pdfrom io import StringIOpath1 = r"沪深A股.xls"path2 = r"外部数据(字符串,数值)_1.txt"path3 = r"外部数据(字符串,数值)_2.txt"#需要第几列,从0开动数mycolA = 8mycolB = 9listdf = []f= open(path1, 'r')next(f)next(f)for line in f: linearr = line.strip().split('\t') if(len(linearr))>mycolB: #保留代码列、相应参数列 listrow = [linearr[0].strip("=").strip("\""),linearr[mycolA],linearr[mycolB]] listdf.append(listrow) f.close()df=pd.DataFrame(data=listdf,columns=['1','2','3'])df.insert(loc=0, column='0', value="0")df.insert(loc=0, column='4', value="0.000") df['0']=df['1'].apply(lambda x:1 if x[0]=="6" else 0)#选子集df2=df[["0","1","2","4"]]df3=df[["0","1","3","4"]]#print(df.shape)#print(df.iloc[0:3])#加多分隔符并保存df2.to_csv(path2,sep='|',header=0,index=0)df3.to_csv(path3,sep='|',header=0,index=0)print("ok")
参考:https://www.cnblogs.com/pyhy/p/16698107.html 蘇暢 麻豆
本站仅提供存储就业,扫数内容均由用户发布,如发现存害或侵权内容,请点击举报。