【发布时间】:2019-02-12 04:31:45
【问题描述】:
我想按他们的名字对一些运动员进行分组,从每个人那里得到最小的年龄,然后按他们的年龄从最小到最大对他们进行排序,但是在我的数据中也有一些 Nan 值,我得到了 FutureWarning: 将列表喜欢传递给带有任何缺失标签的 .loc 或 [] 将引发 KeyError 在未来,你可以使用 .reindex() 作为替代。 是否有任何选项可以跳过具有 Nan 值的记录?
这是我的代码,tab 是我从老师那里得到的 csv 文件中读取的表格:
tabYoungest=tab.sort_values(by='Age')
tabYoungestgesamt=tabYoungest.loc[tabYoungest.groupby('Name')['Age'].idxmin()]
tabYoungestgesamt.head(20)
【问题讨论】:
-
可能就像在
.loc中添加.dropna一样简单:tabYoungest.groupby('Name')['Age'].idxmin().dropna() -
如果您不想丢失信息,可以使用
.fillna()更改这些值 -
请提供MCVE您的数据。
-
在我看来,你真正需要的只是
tab.groupby('Name').min(),另外请注意,如果你不想改变你的方法,你可以使用tabYoungest.reindex(tabYoungest.groupby('Name')['Age'].idxmin())作为警告状态。 -
.dropna() 解决了我的问题 :) thx @ALollz