1、原文件有60M,保存文件的时候,二十分钟左右都没有任何提示,文件夹出现98.xlsx文件,不过大小为0或2k,不能打开,问一下是什么问题?
2、大家对于几十M文件的处理保存有什么好的建议?
import pandas as pd
gpc=pd.read_excel('股票池0322.xlsx',sheet_name='股票池',index_col='ID')
for i in gpc.index:
if gpc['涨幅'].at[i]>=9:
gpc['涨停'].at[i]=gpc['涨停'].at[i]+1
if gpc['涨幅'].at[i]<=-9:
gpc['跌停'].at[i]=gpc['跌停'].at[i]+1
gpc.to_excel('98.xlsx',sheet_name='cs',index=False,header=True)
在pandas处理数据表的时候,请尽量避免使用for循环,for循环都会导致程序的执行时间大幅度提升。
使用Pandas内置的apply方法或者其他内置方法,可以有效提升代码的运行效率,缩减代码的执行时间。-
import pandas as pd
gpc=pd.read_excel('股票池0322.xlsx',sheet_name='股票池',index_col='ID')
gpc['涨停'] = gpc[['涨幅','涨停']].apply(lambda x: x[1]+1 if x[0] >= 9 else x[1])
gpc['跌停'] = gpc[['涨幅','跌停']].apply(lambda x: x[1]+1 if x[0] <= -9 else x[1])
gpc.to_excel('98.xlsx',sheet_name='cs',index=False,header=True)
1 我猜你的文件数据量很大, 数据量很大时 再用for循环, 计算会很慢.
考虑不用for循环试试, 用数组或者列表的方式, 一般一个for循环 或者if 判断 都可以用 列表推导式的方式表示
2 大文件一般保存为csv或者txt文件的格式. 60M对于python不算大, 我经常处理很多200M左右的文件
试试这个看是不是速度能快点:
import pandas as pd
import numpy as np
data = pd.read_excel('c:/users/用户/desktop/文件.xlsx')
data['涨停'] = [i[1]+1 if i[0]>=9 else i[1] for i in zip(data['涨幅'],data['涨停']) ]
data['跌停'] = [i[1]+1 if i[0]<=-9 else i[1] for i in zip(data['涨幅'],data['跌停']) ]
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632