猿问

推荐的方式来访问熊猫数据框中的单行?

我经常想使用多个条件选择单行 Pandas DataFrame。


对于进一步处理,将其作为 Series 或 Dict 访问是有用的,而不是作为 1xW DataFrame。


我可以这样做:


r = df.loc[ (df['col1'] == v1) & (df['col2'] == v2) ]

if len(r.index) != 1:

  raise ValueError(...)

r = r.iloc[0]

这感觉有点笨拙。有没有更好的推荐方法?



一只名叫tom的猫
浏览 143回答 1
1回答

森林海

没有一个内置访问器会做你想做的事。您可以构建自己的访问器并对其进行猴子补丁:def get(df, **kwargs):    cond = [True] * df.shape[0]    for col, value in kwargs.items():        cond &= df[col] == value    result = df[cond]    if result.shape[0] > 1:        raise ValueError('Key must be unique')    return result.iloc[0]pd.DataFrame.get = get# Usagedf.get(col1=..., col2=..., col3=...)但是,这相对较慢,因此不要在紧密循环中调用它。
随时随地看视频慕课网APP

相关分类

Python
我要回答