首页 > 解决方案 > 如何为 pandas 数据框中的新列或 python 上的值计数设置参数?

问题描述

我正在使用来自 Kaggle 的一些关于欧洲蓝色斑块的数据。其中许多牌匾描述了名人,但其他牌匾则描述了地点、事件或动物。数据框包括那些名人的出生和死亡年份,我添加了一个新列,显示主要主题在他们死亡时的年龄,代码如下:

plaques['subject_age'] = plaques['lead_subject_died_in'] - plaques['lead_subject_born_in']

这适用于某些数据集,但由于某些主题没有列“lead_subject_died_in”和“lead_subject_born_in”的值,所以我的一些结果很时髦。

我试图用这个来确定最常见的死亡年龄:

agecount = plaques['subject_age'].value_counts()
print(agecount)

- 我得到了一些疯狂的东西 - 负数,600+等 - 我如何让它只计算那些实际上在这两列中都有数据的人的值?

顺便说一句,我是初学者,所以如果你建议的操作非常困难,请说明他们在做什么,以便我将来学习和使用它!

标签: python

解决方案


您可以使用dropna函数删除nan某些列中的值:

# remove nan values from these 2 columns 
plaques = plaques.dropna(subset = ['lead_subject_died_in', 'lead_subject_born_in'])
plaques['subject_age'] = plaques['lead_subject_died_in'] - plaques['lead_subject_born_in']

# get the most frequent age
plaques['subject_age'].value_counts().idxmax()

# get the top 5 top five most common ages
plaques['subject_age'].value_counts().head()

推荐阅读