假设我有一个像这样的DataFrame:
df
A B
5 0 1
18 2 3
125 4 5
Run Code Online (Sandbox Code Playgroud)
5, 18, 125索引在哪里
我想在某个索引之前(或之后)获得该行.例如,我有索引18(例如,通过做df[df.A==2].index),我想要之前获得该行,并且我不知道该行具有5索引.
2个子问题:
18?什么样的东西df.loc[18].get_position()会返回,1所以我可以在之前到达线df.iloc[df.loc[18].get_position()-1]-C,-A还是-Bgrep?Tom*_*ger 17
对于你的第一个问题:
base = df.index.get_indexer_for((df[df.A == 2].index))
Run Code Online (Sandbox Code Playgroud)
或者
base = df.index.get_loc(18)
Run Code Online (Sandbox Code Playgroud)
为了得到周围的:
mask = pd.Index(base).union(pd.Index(base - 1)).union(pd.Index(base + 1))
Run Code Online (Sandbox Code Playgroud)
我使用索引和联合来删除重复项.您可能希望保留它们,在这种情况下您可以使用它们np.concatenate
小心第一行或最后一行的匹配:)
| 归档时间: |
|
| 查看次数: |
9703 次 |
| 最近记录: |