python - How do I create a DataFrame containing a column where rows are greater than a number? -


i have dataframe these columns:

id                    int64 key                   int64 reference            object skey                float64 sname               float64 fkey                 int64 cname                object ints                  int32 

i want create new dataframe containing columns commonname , ints ints greater 10, doing:

df_greater_10 = df[['commonname', df[df.ints >= 1997]]]

i see problem lies expression df[df.ints >= 1997] i'm returning dataframe - how can column of ints values greater 10?

you can use 1 of many available indexers. recommend .ix, because seems faster:

df_greater_10 = df.ix[df.ints >= 1997, ['commonname', 'ints']] 

or if need ints column

df_greater_10 = df.ix[df.ints >= 1997, 'ints'] 

demo:

in [123]: df = pd.dataframe(np.random.randint(5, 15, (10, 3)), columns=list('abc'))  in [124]: df out[124]:       b   c 0  13  11  14 1  14  10  13 2   7  11   6 3   7  13  12 4   9   9   6 5   7   7   7 6   5   7   8 7   5  11   5 8   9   7   9 9  11  13   7  in [125]: df_greater_10 = df.ix[df.c > 10, ['a','c']]  in [126]: df_greater_10 out[126]:       c 0  13  14 1  14  13 3   7  12 

update: starting pandas 0.20.1 the .ix indexer deprecated, in favor of more strict .iloc , .loc indexers.

so use df.loc[...] or df.iloc[...] instead of deprecated df.ix[...]


Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -