【问题标题】:Counting frequencies across multiple dataframes计算多个数据帧的频率
【发布时间】:2021-10-07 17:48:42
【问题描述】:

我有几个具有相似列的数据框:

df1
name, age, state

df2
name, age, state

等等。

如何计算所有数据帧中年龄列中年龄值的出现频率?比如:

Age  Count
42   23
38   20
..   ..

谢谢!

【问题讨论】:

  • 连接,然后使用年龄列的值计数
  • pd.concat([df1, df1])["Age"].value_counts().reset_index(name="Count")
  • 是的,您可以预先创建一个列表,或者在 concat 中使用列表理解,例如:pd.concat([df for df in list_of_dfs if ...])。
  • @ikechi 那么,您有一个以df[0], df[1], df[2], ... 格式命名的数据框列表吗?如果是这样,您是否尝试过 pd.concat(df) ?它是否按行返回连接的数据帧?

标签: python pandas frequency-distribution


【解决方案1】:

您可以连接数据框,然后使用GroupBy.count() 按年龄获取计数,如下所示:

pd.concat([df1, df2], ignore_index=True).groupby('age')['age'].count().reset_index(name='Count')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    相关资源
    最近更新 更多