Bingold Axel
Bingold Axel

Reputation: 65

In python pandas, count the integers in a particular column and also count all the elements in particular column

There is a huge df with multiple columns but want to read only specific column that is interested to me:

in the below data, I would like to read only the column 'Type 1'

import numpy as np
import pandas as pd

data = {'Type 1': {0: 1, 1: 3, 2: 5, 3: 'HH', 4: 9, 5: 11, 6: 13, 7: 15, 8: 17},
         'Type 2': {0: 'AA',
          1: 'BB',
          2: 'np.NaN',
          3: '55',
          4: '3.14',
          5: '-96',
          6: 'String',
          7: 'FFFFFF',
          8: 'FEEE'},
         'Type 3': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0},
         'Type 4': {0: '23',
          1: 'fefe',
          2: 'abcd',
          3: 'dddd',
          4: 'dad',
          5: 'cfe',
          6: 'cf42',
          7: '321',
          8: '0'},
         'Type 5': {0: -120,
          1: -120,
          2: -120,
          3: -120,
          4: -120,
          5: -120,
          6: -120,
          7: -120,
          8: -120}}
df = pd.DataFrame(data)
df
int_count = df['Type 1'].count(0,numeric_only = True) # should count only cells that contain integers and return 8
total_count = df['Type 1'].count(0,numeric_only = False) # should count all the cells and return 9 

I want something like count only the numeric values in particular column

eg: df['Type 1'].count(0,numeric_only = True) should return 8 (exclude counting the string 'HH' in Type 1 column)

df['Type 1'].count(0,numeric_only = False) should return 9 (total number of cells in the particular column)

but "df['Type 1'].count(0,numeric_only = True/False)" this is not working as I expect...

Upvotes: 0

Views: 1212

Answers (1)

tlouarn
tlouarn

Reputation: 171

I would suggest the below:

int_count = len(df.loc[df['Type 1'].astype(str).str.isnumeric()])
total_count = len(df)

Upvotes: 1

Related Questions