import pandas as pd
bids = [100, 101, 101, 102]
offers = [101, 102, 102.25, 103]
data = {'bids': bids, 'offers': offers}
index = [0, 1, 1, 2]
df = pd.DataFrame(data=data, index=index)
print df
bids offers
0 100 101.00
1 101 102.00
1 101 102.25
2 102 103.00
如何重新索引df,以便使用每列中给定索引的最新值?在这个例子中,我希望索引1有[101,102.25]
答案 0 :(得分:2)
您可以拨打reset_index
然后drop_duplicates
并传递参数take_last=True
,然后重新设置索引
In [181]:
df.reset_index().drop_duplicates('index',take_last=True).set_index('index')
Out[181]:
bids offers
index
0 100 101.00
1 101 102.25
2 102 103.00
In [183]:
df.groupby(df.index).last()
Out[183]:
bids offers
0 100 101.00
1 101 102.25
2 102 103.00
答案 1 :(得分:1)
根据你所描述的,我猜测你想要结果中的“最后一行”。在这种情况下,您只需使用for peak in peaks:
if peak[2] <= -100000:
text(peak[0], 1.02*peak[1], '%d'%int(peak[2]))
:
.tail
来自文档:
DataFrame.tail(N = 5)¶
返回最后n行