我从一个大数据帧开始。我整理了一些专栏。我保存的最后一个(相当大)数据帧的头部如下所示:
# bsa_mod = 'best supporting actress modified' dataframe
[1] bsa_mod = bsa_mod[['Year', 'Name', 'Winner']]
[2] bsa_mod.head()
Year Name Winner
431 1936 Beulah Bondi 0.0
432 1936 Alice Brady 0.0
433 1936 Bonita Granville 0.0
434 1936 Maria Ouspenskaya 0.0
435 1936 Gale Sondergaard 1.0
我需要把所有的名字组合在一起,并计算每个名字旁边的虚拟变量。例如,Agnes Morehead出现在Name列中4次,每次在她的名字旁边都有一个0或1,因此最终的摘要表应该是'Agnes Morehead 4'。我得到了以下信息:
# aggregate nominations by actress
bsa_mod_count = bsa_mod.groupby('Name').Winner.count()
Name
Abigail Breslin 1
Adriana Barraza 1
Agnes Moorehead 4
Alfre Woodard 1
Alice Brady 2
Name: Winner, dtype: int64
我对此运行了.descripe()以获取摘要统计信息,发现计算的最大值是6。你知道吗
我想通过运行这样的程序来找出这个神秘的人是谁:
most_nominations = bsa_mod_count[bsa_mod_count.Winner == 6]
令我惊讶的是,我得到了一个属性错误,说“Winner”不存在,我现在处理的数据类型是一个序列,不再是一个数据帧。你知道吗
数据帧是否在“groupby”之后退化为一个序列?我没想到我的索引会被覆盖,这似乎也是在我运行.agg(['count'])时发生的。有没有其他方法可以做到这一点,以便保留我的数据帧并使“6”可用?你知道吗
答案是否定的,分组确实保留了结构。你知道吗
在您的示例中,
bsa_mod.groupby('Name').Winner.count()
返回一个series对象,而bsa_mod.groupby('Name').count()
返回一个数据帧。你知道吗相关问题 更多 >
编程相关推荐