【问题标题】:Pandas Group By does not groupPandas Group By 不分组
【发布时间】:2021-03-25 14:18:23
【问题描述】:

这段代码

print(loc_coverage)
loc_coverage2 = loc_coverage.groupby('date').min()
print(loc_coverage2)

产生这个输出

date  location_coverage
0  2021-03-25              22.38
1  2021-03-25              22.38
2  2021-03-25              22.38 

            location_coverage
date                         
2021-03-25              22.38
2021-03-25              22.38

我原以为只有一排。为什么日期值没有分组?

日期是一个 datetime.date 对象,我检查过没有重复。

【问题讨论】:

标签: python pandas pandas-groupby


【解决方案1】:

做完之后

loc_coverage.head().to_dict()

我意识到问题是我的日期列中并非所有值都属于同一类型

{'date': {0: '2021-03-25', 1: '2021-03-25', 2: datetime.date(2021, 3, 25)},
 'location_coverage': {0: 22.38, 1: 22.38, 2: 22.38}}

【讨论】:

    【解决方案2】:
    import pandas as pd
    import datetime
    
    
    list_value = [[datetime.date(2021, 3, 25), 22.38], [datetime.date(2021, 3, 25), 22.38], [datetime.date(2021, 3, 25), 22.38]]
    
    
    df = pd.DataFrame(list_value, columns = ['date', 'loc_coverage'])
    
    df1 = df.groupby(by = 'date')['loc_coverage'].agg(['describe'])
    df2 = df.groupby(by = 'date')['loc_coverage'].agg(['min'])
    df3 = df.groupby(by = 'date')['loc_coverage'].min()
    
    print('==== Original ====')
    print(df)
    print()
    print('==== Mode 1 ====')
    print(df1)
    print()
    print('==== mode 2 ====')
    print(df2)
    print()
    print('==== mode 3 ====')
    print(df3)
    

    【讨论】:

      猜你喜欢
      • 2011-06-03
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      • 1970-01-01
      • 2023-01-15
      • 1970-01-01
      相关资源
      最近更新 更多