代码之家  ›  专栏  ›  技术社区  ›  NealWalters

简单数据帧读取\u csv,然后使用Count/KeyError分组

  •  0
  • NealWalters  · 技术社区  · 4 年前

    我只是想得到给定列中某个值的行数,例如:

    'Occupation','data'
    'Carpenter','data1'
    'Carpenter','data2'
    'Carpenter','data3'
    'Painter','data1'
    'Painter','data2'
    'Programmer','data1'
    'Programmer','data2'
    'Programmer','data3'
    'Programmer','data4'
    

    filename = "./data/TestGroup.csv"
    
    df = pd.read_csv(filename)
    print(df.head())
    
    print("Computing stats by HandRank... ")
    df_stats = df[['data']].groupby(['Occupation']).agg(['count'])
    # also tried:  df_stats = df[['Occupation']].groupby(['Occupation']).agg(['count'])
    print(df_stats.head())
    

    如何获得变量中的计数?.groupby和.agg是否返回另一个数据帧?

      'Occupation'   'data'
    0  'Carpenter'  'data1'
    1  'Carpenter'  'data2'
    2  'Carpenter'  'data3'
    3    'Painter'  'data1'
    4    'Painter'  'data2'
        Computing stats by HandRank... 
        Traceback (most recent call last):
          File "C:\Apps\PokerHandGenerator_Copy_not_Source\Server\TestPandasGroupBy.py", line 17, in <module>
            df_stats = df.groupby(['Occupation']).agg(['count'])
          File "C:\Apps\ProcessData\venv\lib\site-packages\pandas\core\frame.py", line 6714, in groupby
            return DataFrameGroupBy(
          File "C:\Apps\ProcessData\venv\lib\site-packages\pandas\core\groupby\groupby.py", line 560, in __init__
            grouper, exclusions, obj = get_grouper(
          File "C:\Apps\ProcessData\venv\lib\site-packages\pandas\core\groupby\grouper.py", line 811, in get_grouper
            raise KeyError(gpr)
        KeyError: 'Occupation'
    

    这个测向头()显示它正在使用“职业”作为我的列名。

    1 回复  |  直到 4 年前
        1
  •  1
  •   NealWalters    4 年前

    熊猫认为第一栏是“占领”,而不是占领。

    df_stats = df.groupby("'Occupation'").agg(['count'])
    

    而不是使用这是:-

    df_stats = df[['data']].groupby(['Occupation']).agg(['count'])