如何将Pandas DataFrame子集的索引重置为默认索引?
解决方案
当然可以实现!你只需要在筛选后的DataFrame结果上调用reset_index()方法,就能把原本作为索引的month列恢复为普通数据列,同时生成默认的整数索引。
修改后的打印语句
print(df[(df['sale'] > 40)].reset_index())
完整运行代码
import pandas as pd df = pd.DataFrame({'month': [1, 4, 7, 10], 'year': [2012, 2014, 2013, 2014], 'sale':[55, 40, 84, 31]}) df.set_index('month', inplace=True) print(df[(df['sale'] > 40)].reset_index())
执行输出结果
month sale year 0 1 55 2012 1 7 84 2013
补充说明
如果你希望保留原DataFrame的行索引(也就是你示例中的0和2),仅修改print语句无法实现——因为执行df.set_index('month', inplace=True)时已经覆盖了原有的行索引。这种情况下需要调整索引设置的代码,比如设置索引时保留原索引:df.set_index('month', drop=False, inplace=True),不过这就超出了仅修改print语句的范围啦。
内容的提问来源于stack exchange,提问作者jscriptor
相关产品推荐
相关产品推荐

