我通过 loc 搜索Pandas DataFrame-例如这样
x = df.loc[df.index.isin(['one','two'])]
但是我只需要结果的第一行。如果我使用
x = df.loc[df.index.isin(['one','two'])].iloc[0]
在找不到行的情况下出现错误。当然,我可以选择所有行(第一个示例),然后检查结果是否为空。但我寻求一种更有效的方法(数据帧可能很长)。有没有?
答案 0 :(得分:2)
pandas.Index.duplicated
pandas.Index
对象具有一个duplicated
方法,该方法标识首次出现后的所有重复值。
x[~x.index.duplicated()]
如果您想...
df[df.index.isin(['one', 'two']) & ~df.index.duplicated()]