python - Pandas Dataframe 访问多索引数据帧的最快方法
问题描述
我有一个包含数百万条多索引记录的数据框
df = pd.DataFrame(data=data, columns=['AminoAcid', 'AASeqID', 'Atom', 'X', 'Y', 'Z'])
return df.drop_duplicates(['AASeqID', 'Atom'], keep='last').set_index(['AASeqID', 'Atom'], drop=True)
数据样本看起来像这样
为了访问特定 AASeqID 的氨基酸,我曾经使用 .at 访问它,
display(AtomsDF.at[(1,),'AminoAcid'][0])
其中 1 是提供任何原子的 AASeqID,它返回 MSE。最近熊猫更新后的问题不再接受这个。
我可以使用 .loc,但它会显着影响从几分钟到几小时的速度
display(AtomsDF.loc[(1,),'AminoAcid'][0])
我不能使用 df.iat(),因为该索引与 AASeqID 不同,因为 AASeqID 与蛋白质数据库中特定蛋白质的氨基酸索引相匹配。
我可以通过仅访问 AASeqID 来获取氨基酸的最快方法是什么,或者我可以始终获得特定 AASeqID 的第一行吗
解决方案
推荐阅读
- c# - 如何在gridview的TextBox中将字符串转换为DateTime
- prestashop-1.7 - 如何在 prestashop 模块中禁用订单确认邮件?
- java - Okhttp3:使用 HeaderInterceptor 需要帮助
- python - Python gTTS几个mp3文件问题
- java - 如何使recyclerview中的进度条不可见
- android - 如何连接一些 Firebase 数据库,其 google-services.json 未添加到我的应用中
- postgresql - 将数据库从 sqlite 转换为 postgres 的问题
- c# - 使用嵌套括号拆分字符串,但将它们保留在自己的组中
- c++ - 如何创建智能指针向量
- javascript - 根据其他对象值更改对象键