DataFrame.sort_values排序后需手动重索引?是否为预期行为?
关于pandas中sort_values不自动重新索引的疑问
我有一组周期性的恒星流量时间序列,为此创建了包含时间列t和流量列f的DataFrame:
file: Path = localdir / file_path.csv est_period: float = #number_I_estimated df = DataFrame(file, names=['t','f']) df['stack_t'] = df['t'] % est_period stacked = df[['stack_t','f']].sort_values(by='stack_t')
我通过对时间序列t与估计周期执行取模%运算生成新列stack_t,并调用df.sort_values(by='stack_t')进行排序。
我发现DataFrame.sort_values(inplace=True)似乎不会为数据集重新索引:排序后,针对mask=stacked['stack_t']>somenumber的条件求f的最小值时,argmin(stacked[mask]['f'])返回的是原df的索引,而非排序后stacked的索引。
必须手动重新索引才能正常使用:
stacked = df[['stack_t','f']].sort_values(by='stack_t').reindex(range(0,len(df)))
请问这是预期行为吗?.sort_values已返回df的副本,为何副本未自动重新索引?
内容的提问来源于stack exchange,提问作者Gerald
相关产品推荐
相关产品推荐

