In [1]:
import pandas as pd
In [2]:
person = {
    "first": ["Kushagra", "Jane", "John"],
    "last": ["Gupta", "Doe", "Doe"],
    "email": ["Kushagra225@gmail.com", "JaneDoe123@gmail.com", "John@gmail.com"]
}
In [3]:
df = pd.DataFrame(person)
In [4]:
df
Out[4]:
first last email
0 Kushagra Gupta Kushagra225@gmail.com
1 Jane Doe JaneDoe123@gmail.com
2 John Doe John@gmail.com
In [5]:
df['email']
Out[5]:
0    Kushagra225@gmail.com
1     JaneDoe123@gmail.com
2           John@gmail.com
Name: email, dtype: object
In [8]:
#setting email as index 
df.set_index('email')
Out[8]:
first last
email
Kushagra225@gmail.com Kushagra Gupta
JaneDoe123@gmail.com Jane Doe
John@gmail.com John Doe
In [10]:
#changes are not carried over
df
Out[10]:
first last email
0 Kushagra Gupta Kushagra225@gmail.com
1 Jane Doe JaneDoe123@gmail.com
2 John Doe John@gmail.com
In [11]:
#inplace is used so changes are carried over
df.set_index('email', inplace=True)
In [12]:
df
Out[12]:
first last
email
Kushagra225@gmail.com Kushagra Gupta
JaneDoe123@gmail.com Jane Doe
John@gmail.com John Doe
In [13]:
df.index
Out[13]:
Index(['Kushagra225@gmail.com', 'JaneDoe123@gmail.com', 'John@gmail.com'], dtype='object', name='email')
In [16]:
#you can now use email as index in loc
df.loc['Kushagra225@gmail.com']
Out[16]:
first    Kushagra
last        Gupta
Name: Kushagra225@gmail.com, dtype: object
In [17]:
#reseting index
df.reset_index(inplace=True)
In [18]:
df
Out[18]:
email first last
0 Kushagra225@gmail.com Kushagra Gupta
1 JaneDoe123@gmail.com Jane Doe
2 John@gmail.com John Doe