获取一行 Pandas DataFrame 作为具有正确类型的类似 dict 的对象 [英] Get a row of a pandas DataFrame as a dict-like object with correct types

查看:18
本文介绍了获取一行 Pandas DataFrame 作为具有正确类型的类似 dict 的对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以字典形式获取pandas中的一行数据,可以从pandas DataFrme 使用 loc:

As suggested in Get a row of data in pandas as a dict, one can extract a row from a pandas DataFrme using loc:

df1 = pd.DataFrame([{"a":1.0,"b":2,"c":3}]).set_index("c")
df1.loc[3].to_dict()

返回 {'a': 1.0, 'b': 2.0} - 唉,这是错误,因为 b 值应该是 2 而不是 2.0.

returns {'a': 1.0, 'b': 2.0} - alas, this is wrong because the b value should be 2 and not 2.0.

如何提取具有正确类型的行?

推荐答案

一个想法是使用 [[]] for one row DataFrame,在我看来有点复杂:

One idea is use [[]] for one row DataFrame, a bit ovecomplicated in my opinion:

d = df1.loc[[3]].to_dict(orient='record')[0]
print (d)
{'a': 1.0, 'b': 2}

问题是如果通过 loc (df1.loc[3]) 然后 float 列向上转换整数列创建系列.

Problem is if create Series by loc (df1.loc[3]) then float column upcast integer(s) columns.

这篇关于获取一行 Pandas DataFrame 作为具有正确类型的类似 dict 的对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆