需求
代码
path = r’文件路径’
def get_df_open_inteval(path):
# 获取数据
df = pd.read_csv(path,encoding='gbk')
# 取相关数据
df1 = df[['时间','申卖价1']]
# 把申卖价大于0的变为1
df1['申卖价1'][df1['申卖价1'] > 0] = 1
# 新增一列,用shift函数向下移动一步
df1['shift_value'] = df1['申卖价1'].shift()
# 把NaN变为1
df1 = df1.fillna(1)
# shift_value改变类型
df1['shift_value'] = df1['shift_value'].astype('int')
# 取申卖价1为0,shift_value为1的时间,这是开始的时间
result1 = list(df1[(df1['申卖价1'] == 0) & (df1['shift_value'] == 1)]['时间'])
# 取申卖价1为1,shift_value为0的时间,这是结束的时间
result2 = list(df1[(df1['申卖价1'] == 1) & (df1['shift_value'] == 0)]['时间'])
# 这里判断最后一段如果没有结束时间就直接取最后的
if len(result1)!=len(result2):
result2.append(df1.iloc[-1]['时间'])
# 循环得到一个list,元素是元组
res_list = []
for i in range(len(result1)):
res_list.append((result1[i],result2[i]))
return res_list
循环的写法
time_tuple = []
i = 0
while i<len(df1):
cnt=0
while df1['申卖价1'][i] == 0:
cnt += 1
if cnt == 1:
begin = df1['时间'][i]
i += 1
if i == 3170:
break
if df1['申卖价1'][i-1] == 0:
end = df1['时间'][i-1]
time_tuple.append((begin,end))
i += 1
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- niushuan.com 版权所有 赣ICP备2024042780号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务