【问题标题】:For loop (nested) for value_counts() with Pandas带有 Pandas 的 value_counts() 循环(嵌套)
【发布时间】:2018-11-22 09:26:11
【问题描述】:

我有一个DataFrame,如下所示:

现在我想做value_counts(),但我遇到的问题是当我使用以下代码时:

with open('out.csv', 'w') as out:
    for col in df.columns:
        res = df[col].value_counts()\
                     .reset_index()\
                     .rename(columns={col: 'count', 'index': col})\

        res.to_csv(out, index=False)

我得到以下错误结果:

但我需要的是以下内容:

【问题讨论】:

    标签: python python-3.x pandas dataframe for-loop


    【解决方案1】:

    value_counts + melt

    您可以将value_counts 应用于每个系列,然后融化您的数据框:

    df = pd.DataFrame({'01-01-2018': [1, 2, 3, 4, 1, 2],
                       '02-01-2018': [4, 2, 3, 1, 3, 1]})
    
    res = df.apply(pd.Series.value_counts).reset_index()
    res = pd.melt(res, id_vars='index')
    res.columns = ['Code', 'Date', 'Freq']
    
    print(res)
    
       Code        Date  Freq
    0     1  01-01-2018     2
    1     2  01-01-2018     2
    2     3  01-01-2018     1
    3     4  01-01-2018     1
    4     1  02-01-2018     2
    5     2  02-01-2018     1
    6     3  02-01-2018     2
    7     4  02-01-2018     1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-27
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      相关资源
      最近更新 更多