使用循环创建DataFrame时,能否在循环内指定索引名称?
解决方案
当然可以在循环过程中直接指定索引,有两种简洁的方式实现:
方法1:初始化DataFrame时预先设置索引
直接在创建空DataFrame的时候就把索引指定好,后续循环只需要填充列数据即可:
# 预先指定索引创建空DataFrame regression_stats_df = pd.DataFrame(index=['Beta', 'Alpha', 'Rsqr']) for i in all_perf_time_series: # 每次循环将结果赋值给对应列 regression_stats_df[i] = stats.linregress(all_perf_time_series['Benchmark'], all_perf_time_series[i])[0:3]
方法2:每次添加列时构造带索引的Series
在给DataFrame添加列的时候,把回归结果包装成带指定索引的Series,这样每列数据都会自动匹配索引:
regression_stats_df = pd.DataFrame() for i in all_perf_time_series: beta, alpha, rsqr = stats.linregress(all_perf_time_series['Benchmark'], all_perf_time_series[i])[0:3] # 构造带索引的Series并添加为列 regression_stats_df[i] = pd.Series([beta, alpha, rsqr], index=['Beta', 'Alpha', 'Rsqr'])
这两种方式都能让你在循环过程中就完成索引的设置,不需要等到循环结束后再单独赋值索引。
内容的提问来源于stack exchange,提问作者Farrep7
相关产品推荐
相关产品推荐

