为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只名叫tom的猫 2022-06-22 17:20:39
我经常想使用多个条件选择单行 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]这感觉有点笨拙。有没有更好的推荐方法?
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

没有一个内置访问器会做你想做的事。您可以构建自己的访问器并对其进行猴子补丁:


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


# Usage

df.get(col1=..., col2=..., col3=...)

但是,这相对较慢,因此不要在紧密循环中调用它。


查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信