【问题标题】:Loop in Python to find the max value of every destiny在 Python 中循环查找每个命运的最大值
【发布时间】:2020-10-12 23:43:12
【问题描述】:

我是python的新手。我正在使用 nycflights13 df。

我的目标是确定每一种命运最常见和最不常见的起源。

+---------+--------------------+-----------+---------------------+------------+
| destiny | most_common_origin | max_count | least_common_origin |  min_count |
+---------+--------------------+-----------+---------------------+------------+
| MIA     | LGA                |      5781 | EWR                 |       2633 |
+---------+--------------------+-----------+---------------------+------------+

我设法为一个命运做到了,但我在循环和绑定行方面遇到了麻烦,因为有时我会得到一个系列。

我的工作示例

from nycflights13 import flights

flights_to_MIA = flights[flights['dest']=='MIA']
flights_to_MIA.groupby(flights_to_MIA['origin']).size().reset_index(name='counts')

请注意,我使用 size 然后 reset.index 使其成为 df。

【问题讨论】:

    标签: python pandas loops


    【解决方案1】:

    您可以查看agg + value_counts

    s=df.groupby('dest').agg(most_common_origin=('origin',lambda x : x.mode()[0]),
                                  max_count=('origin',lambda x : x.value_counts().sort_values().iloc[-1]),
                                  least_common_origin=('origin',lambda x : x.value_counts().sort_values().iloc[[0]].index),
                                  min_count=('origin',lambda x : x.value_counts().sort_values().iloc[0]))
    

    【讨论】:

    • "函数名必须是唯一的,找到多个命名来源" 似乎我不能在 agg 中使用多个函数,也许是字典?
    • @EvilEmi 你的熊猫版本是什么?
    • 好像是 0.25.3 我不知道为什么,我会升级
    • 它几乎成功了,最不常见的来源和最常见的是一个数字而不是实际的机场
    • 看起来混合和最大计数是一样的
    猜你喜欢
    • 2013-10-05
    • 2022-09-29
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 2018-03-06
    • 2019-05-15
    相关资源
    最近更新 更多