我有以下具有2个级别的熊猫系列(如第一个图像所示)。我想使用一个for循环来打印每个条目的第一级(.index.levels [0])。即我正在寻找的输出应该是(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,....)。由于第一个月有9个条目,其次是2个,第二个也应该有9个条目,第三个月则有3个条目,依此类推。
我在下面编写了以下代码,但没有得到(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2 .. ..),最后得到“ int64Index([1,2,3,4,5,6,.....],dtypes ='int64',name ='month'):如第二张图片。关于如何获得每个条目月份的想法?
for i in df_postMonMean:
print(df_postMonMean[df_postMonMean == i].index.levels[0])
答案 0 :(得分:1)
希望这会有所帮助:
df = pd.DataFrame([['1', '2011', 1],
['1', '2012', 2],
['1', '2013', 3],
['2', '2011', 1],
['2', '2012', 4],
['2', '2013', 5],
['3', '2011', 5],
['3', '2012', 5],],
columns=['month','year','value']).set_index(['month','year'])
print(df)
print(df.index.get_level_values(0))
输出:
value
month year
1 2011 1
2012 2
2013 3
2 2011 1
2012 4
2013 5
3 2011 5
2012 5
Index(['1', '1', '1', '2', '2', '2', '3', '3'], dtype='object', name='month')
您也可以使用df.index.get_level_values('month')