import pandas as pdimport globimport osos.chdir('path/stock_hfqqa') summ=pd.DataFrame()for file in glob.glob('*.csv'): fname='.'.join(file.split('.')[0:2]) df=pd.read_csv(file,dtype={'trade_date':'str'}) df['trade_date']=pd.to_datetime(df['trade_date']) df['year']=df['trade_date'].dt.year min_row=df[df['year']==2020]['close'].idxmin() end_date_min=df.iloc[min_row]['trade_date'] start_date_min=end_date_min-pd.Timedelta(days=100) mindf=df.loc[(df['trade_date']>=start_date_min) & (df['trade_date']<=end_date_min)] tempdf=mindf.head(1).copy() tempdf['date_start']=start_date_min summ=summ.append(tempdf,ignore_index=True) filemin=fname+'_min'+'.xlsx' mindf.to_excel(filemin,index=False) max_row=df[df['year']==2020]['close'].idxmax() end_date_max=df.iloc[max_row]['trade_date'] start_date_max=end_date_max-pd.Timedelta(days=100) maxdf=df.loc[(df['trade_date']>=start_date_max) & (df['trade_date']<=end_date_max)] tempdf=maxdf.head(1).copy() tempdf['date_start']=start_date_max summ=summ.append(tempdf,ignore_index=True) filemax=fname+'_max'+'.xlsx' maxdf.to_excel(filemax,index=False)summ=summ[['ts_code','date_start','trade_date','close']]summ.columns=['ts_code','date_start','date_end','close']summ.to_excel('bbbb.xlsx',index=False)
计算出的 start_date_min 日期当日可能有数据也可能没数据,当没数据就想顺延到有数据的日期,请问怎么改代码,谢谢。。。。
还有个问题就是2020怎么换成年份字符窜,有知道的一起指教,就是怎么求每只 code 每年的最低最高价,一年一年算很麻烦,就想一下算所有的,一并谢了。。。
CSV 文件:
import pandas as pdimport datetime# 创建示例数据data = { 'trade_date': [datetime.date(2020, i, 1).strftime('%Y-%m-%d') for i in range(1, 13)], 'ts_code': ['000001.SZ'] * 12, 'close': [10, 9, 8, 7, 6, 7, 8, 9, 10, 11, 12, 13]}df = pd.DataFrame(data)# 保存为 CSV 文件df.to_csv('000001.SZ.csv', index=False)
修改:
import osimport glob# 设置工作目录os.chdir('/path/to/csv/files')# 创建 summ DataFramesumm = pd.DataFrame()# 遍历 CSV 文件for file in glob.glob('*.csv'): fname = '.'.join(file.split('.')[0:2]) df = pd.read_csv(file, dtype={'trade_date': 'str'}) df['trade_date'] = pd.to_datetime(df['trade_date']) df['year'] = df['trade_date'].dt.year.astype(str) # 将年份转为字符串 # 以下为找到最小值的部分,并使用 bfill() 处理缺失数据 min_row = df[df['year'] == '2020']['close'].idxmin() end_date_min = df.iloc[min_row]['trade_date'] start_date_min = end_date_min - pd.Timedelta(days=100) start_idx_min = df.loc[df['trade_date'] >= start_date_min].index.min() if pd.isnull(df.loc[start_idx_min, 'close']): start_date_min = df.loc[start_idx_min:].bfill().iloc[0]['trade_date'] mindf = df.loc[(df['trade_date'] >= start_date_min) & (df['trade_date'] <= end_date_min)] tempdf = mindf.head(1).copy() tempdf['date_start'] = start_date_min summ = summ.append(tempdf, ignore_index=True) filemin = fname + '_min' + '.xlsx' mindf.to_excel(filemin, index=False) # 同理处理最大值的部分 max_row = df[df['year'] == '2020']['close'].idxmax() end_date_max = df.iloc[max_row]['trade_date'] start_date_max = end_date_max - pd.Timedelta(days=100) start_idx_max = df.loc[df['trade_date'] >= start_date_max].index.min() if pd.isnull(df.loc[start_idx_max, 'close']): start_date_max = df.loc[start_idx_max:].bfill().iloc[0]['trade_date'] maxdf = df.loc[(df['trade_date'] >= start_date_max) & (df['trade_date'] <= end_date_max)] tempdf = maxdf.head(1).copy() tempdf['date_start'] = start_date_max summ = summ.append(tempdf, ignore_index=True) filemax = fname + '_max' + '.xlsx' maxdf.to_excel(filemax, index=False)# 结果保存为 Excel 文件summ = summ[['ts_code', 'date_start', 'trade_date', 'close']]summ.columns = ['ts_code', 'date_start', 'date_end', 'close']summ.to_excel('bbbb.xlsx', index=False)
这个结果是怎么来的?
本文向大家介绍python实现数据清洗(缺失值与异常值处理),包括了python实现数据清洗(缺失值与异常值处理)的使用技巧和注意事项,需要的朋友参考一下 1。 将本地sql文件写入mysql数据库 本文写入的是python数据库的taob表 其中总数据为9616行,列分别为title,link,price,comment 2。使用python链接并读取数据 查看数据概括 说明数据的导入是正确的,
问题内容: 我有一个回归模型,其中因变量是连续的,但是90%的自变量是分类的(有序和无序),大约30%的记录具有缺失值(更糟糕的是,它们无规律地随机缺失,也就是说,超过百分之四十五的数据至少有一个缺失值)。没有先验理论来选择模型的规格,因此关键任务之一是在运行回归之前进行尺寸缩减。虽然我知道用于连续变量降维的几种方法,但我不知道关于分类数据的类似静态文献(也许,除了作为对应分析的一部分,这基本上是
本文向大家介绍如何处理缺失值数据?相关面试题,主要包含被问及如何处理缺失值数据?时的应答技巧和注意事项,需要的朋友参考一下 数据中可能会有缺失值,处理的方法有两种,一种是删除整行或者整列的数据,另一种则是使用其他值去填充这些缺失值。在Pandas库,有两种很有用的函数用于处理缺失值:isnull()和dropna()函数能帮助我们找到数据中的缺失值并且删除它们。如果你想用其他值去填充这些缺失值,则
本文向大家介绍你是怎么做数据分析的?相关面试题,主要包含被问及你是怎么做数据分析的?时的应答技巧和注意事项,需要的朋友参考一下 考察的是数据分析的能力。主要从以下4个维度回答,结合具体的数据分析来进行阐述: 明确数据分析的目的; 确定数据分析的方法以及获取所需要的数据; 对数据进行预处理,并进行分析; 输出数据分析报告,提出相应建议。
现在系统里面积累了大约五六年的缴费数据。 希望分离出一个冷数据库,用来保存2年以前的数据。 而主库只保存2年以内的热数据。 这个过程中,怎么保证服务不停机,实现平滑迁移呢? 怎么实现迁移完成后的数据,对于用户查询热数据、冷数据是透明无感的?