How to select or filter single or multiple columns data in Pandas dataframes
In this tutorial, you will learn how to select or filter single column or multiple columns in dataframes in pandas -python.
# python program
import pandas as pd
data = pd.DataFrame({
'name':['ravi','david','raju','david','kumar','teju'],'id':[6,1,2,8,3,4],
'salary':[15000,20000,30000,45389,50000,20000],
'year' :[2017,2017,2018,2018,2019,2018]
})
print(data)
# by using filter method single column
print(data.filter(items=['id']))
# by using filter method multiple columns
print(data.filter(items=['id','name']))
# select only one column data
filter_id = data[data['id']==6]
print("\n",filter_id)
#filter salary less than 30000 and joining year 2018
filtered_data = data[(data['salary']>= 25000) & (data['year'] == 2018)]
print("\n",filtered_data)
#filter salary less than 30000 or joining year 2017
filtered_data = data[(data['salary']>= 25000) | (data['year'] == 2018)]
print("\n",filtered_data)
# by using query method
sal = data.query('salary>25000')
#by using sub query method
cond = data.query('salary>25000').query('year==2018')
print("\n",cond)
Output:
id name salary year 0 6 ravi 15000 2017 1 1 david 20000 2017 2 2 raju 30000 2018 3 8 david 45389 2018 4 3 kumar 50000 2019 5 4 teju 20000 2018 id 0 6 1 1 2 2 3 8 4 3 5 4 id name 0 6 ravi 1 1 david 2 2 raju 3 8 david 4 3 kumar 5 4 teju id name salary year 0 6 ravi 15000 2017 id name salary year 2 2 raju 30000 2018 3 8 david 45389 2018 id name salary year 2 2 raju 30000 2018 3 8 david 45389 2018 4 3 kumar 50000 2019 5 4 teju 20000 2018 id name salary year 2 2 raju 30000 2018 3 8 david 45389 2018