我有一個如下所示的資料框(實際上,這是計算的抽象結果):
import pandas as pd
data = {"A":[i for i in range(10)]}
index = [1, 3, 4, 5, 9, 10, 12, 13, 15, 20]
df = pd.DataFrame(index=index, data=data)
print(df)
產量:
A
1 0
3 1
4 2
5 3
9 4
10 5
12 6
13 7
15 8
20 9
現在我想過濾索引值以僅顯示一組連續值中的第一個值,例如以下結果:
A
1 0
3 1
9 4
12 6
15 8
20 9
關于如何有效實作這一目標的任何提示?
uj5u.com熱心網友回復:
使用Series.diff未實作為Index,因此轉換為Series并compre 為不等于1:
df = df[df.index.to_series().diff().ne(1)]
print (df)
A
1 0
3 1
9 4
12 6
15 8
20 9
uj5u.com熱心網友回復:
試試這個:
import numpy as np
df.iloc[np.unique(np.array(index)-np.arange(len(index)), return_index=True)[1]]
uj5u.com熱心網友回復:
嘗試這個:
df.groupby('A').index.first().reset_index()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/366360.html
上一篇:我可以在groupbyapply中獲取分組列的值嗎?
下一篇:用字串pandas替換空值
