我有这个示例代码
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)])
产生:
sale year
month
1 55 2012
7 84 2013
但我需要
month sale year
0 1 55 2012
2 7 84 2013
我将索引重置为默认索引。有没有办法改变print语句来实现这个目标?
谢谢
答案 0 :(得分:2)
使用df.reset_index()
获取信息阅读docs
检查一下:
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) # here you are setting index inplace
print(df[( df['sale'] > 40)])
df.reset_index(inplace=True) # here i reset it inplace
print(df[( df['sale'] > 40)]) #updated df
它会为您提供如下输出:
month sale year
0 1 55 2012
2 7 84 2013
作为您想要的输出!
希望这会对你有所帮助! :)
答案 1 :(得分:2)
只需取出df.set_index('month', inplace=True)
行:
df = pd.DataFrame({'month': [1, 4, 7, 10],
'year': [2012, 2014, 2013, 2014],
'sale':[55, 40, 84, 31]})
print(df[( df['sale'] > 40)])
# month sale year
# 0 1 55 2012
# 2 7 84 2013
该行明确地将索引设置为您不想要的month
列。您可以设置它,然后根据@Addullah Ahmed Ghaznavi的建议使用df.reset_index()
取消设置,但这似乎是不必要的工作,除非您无法控制数据帧的创建
注意:如果您的问题建议只想更改打印输出(保持原始数据框完全不变),则可以使用此print语句与您的原始流程:
print(df[( df['sale'] > 40)].reset_index())