【问题标题】:do calculations for multiple columns with some conditions in pandas dataframe在 pandas 数据框中对具有某些条件的多列进行计算
【发布时间】:2019-04-23 01:52:21
【问题描述】:

我的问题与我之前的问题有关。但它是不同的。因此,即使数据相同,我也创建了一个新帖子。

我想对 pandas 数据框中具有某些条件的多个列进行一些计算。

我的桌子:

 id1       date_time               adress       a_size       flag 
 reom      2005-8-20 22:51:10      75157.5413   ceifwekd      1 
 reom      2005-8-20  1:01:25      3571.37946   ceifwekd      1 
 reom      2005-8-20 11:21:01      3571.37946   tnohcve       0
 reom      2005-8-20  8:29:09      97439.219    tnohcve       0
 penr      2005-8-20  17:07:16     97439.219    ceifwekd      1
 penr      2005-8-20  9:10:37      7391.6258    ceifwekd      0

我需要通过“地址”获取 flag == 1 的百分比:

  df['ratio'] = df['address'].map(df.groupby('address').apply(lambda x: x[x['flag'] == 1].count() / x['flag'].count()))   

但我得到了错误:

  TypeError: 'DataFrame' object is not callable

谢谢

【问题讨论】:

  • 为什么 > self.__df?

标签: python sql python-3.x pandas dataframe


【解决方案1】:

只需使用df.groupby('address')['flag'].mean()

【讨论】:

    【解决方案2】:

    我将使用transformmean

      df['ratio'] = df.groupby('address')['flag'].transform('mean')
    

    【讨论】:

      【解决方案3】:

      你可以试试transform:

      df['ratio'] = df.groupby('address').transform(lambda x: x[x['flag'] == 1].count() / x['flag'].count())

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-21
        • 1970-01-01
        • 2014-05-04
        • 2016-06-27
        • 1970-01-01
        • 2019-02-22
        • 2019-05-11
        相关资源
        最近更新 更多