In [1]:
import pandas as pd

In [2]:
df = pd.read_csv('data/src/sample_pandas_normal.csv', index_col=0)

In [3]:
print(df)


         age state  point
name                     
Alice     24    NY     64
Bob       42    CA     92
Charlie   18    CA     70
Dave      68    TX     70
Ellen     24    CA     88
Frank     30    NY     57

In [4]:
print(df.index.get_loc('Alice'))


0

In [5]:
print(df.index.get_loc('Ellen'))


4

In [6]:
print(df.columns.get_loc('age'))


0

In [7]:
print(df.columns.get_loc('point'))


2

In [8]:
# print(df.index.get_loc('XXX'))
# KeyError: 'XXX'

In [9]:
# print(df.columns.get_loc('XXX'))
# KeyError: 'XXX'

In [10]:
df_dup = df.rename(index={'Charlie': 'Bob'})
print(df_dup)


       age state  point
name                   
Alice   24    NY     64
Bob     42    CA     92
Bob     18    CA     70
Dave    68    TX     70
Ellen   24    CA     88
Frank   30    NY     57

In [11]:
print(df_dup.index.get_loc('Bob'))


slice(1, 3, None)

In [12]:
print(type(df_dup.index.get_loc('Bob')))


<class 'slice'>

In [13]:
df_dup.rename(index={'Ellen': 'Bob'}, inplace=True)
print(df_dup)


       age state  point
name                   
Alice   24    NY     64
Bob     42    CA     92
Bob     18    CA     70
Dave    68    TX     70
Bob     24    CA     88
Frank   30    NY     57

In [14]:
print(df_dup.index.get_loc('Bob'))


[False  True  True False  True False]

In [15]:
print(type(df_dup.index.get_loc('Bob')))


<class 'numpy.ndarray'>

In [16]:
print(df_dup[df_dup.index.get_loc('Bob')])


      age state  point
name                  
Bob    42    CA     92
Bob    18    CA     70
Bob    24    CA     88

In [17]:
print(df_dup.iloc[df_dup.index.get_loc('Bob'), 0])


name
Bob    42
Bob    18
Bob    24
Name: age, dtype: int64

In [18]:
print(df_dup.query('index == "Bob"'))


      age state  point
name                  
Bob    42    CA     92
Bob    18    CA     70
Bob    24    CA     88

In [19]:
l_index = list(df.index)
print(l_index)


['Alice', 'Bob', 'Charlie', 'Dave', 'Ellen', 'Frank']

In [20]:
print(type(l_index))


<class 'list'>

In [21]:
l_columns = list(df.columns)
print(l_columns)


['age', 'state', 'point']

In [22]:
print(type(l_columns))


<class 'list'>

In [23]:
print(l_index.index('Bob'))


1

In [24]:
l_index_dup = list(df_dup.index)
print(l_index_dup)


['Alice', 'Bob', 'Bob', 'Dave', 'Bob', 'Frank']

In [25]:
print([i for i, x in enumerate(l_index_dup) if x == 'Bob'])


[1, 2, 4]

In [26]:
print(df.query('state == "CA"'))


         age state  point
name                     
Bob       42    CA     92
Charlie   18    CA     70
Ellen     24    CA     88

In [27]:
print(list(df.query('state == "CA"').index))


['Bob', 'Charlie', 'Ellen']

In [28]:
print(df.query('state == "TX"'))


      age state  point
name                  
Dave   68    TX     70

In [29]:
print(list(df.query('state == "TX"').index))


['Dave']

In [30]:
print(df.query('state == "TX"').index[0])


Dave

In [31]:
print(df.reset_index())


      name  age state  point
0    Alice   24    NY     64
1      Bob   42    CA     92
2  Charlie   18    CA     70
3     Dave   68    TX     70
4    Ellen   24    CA     88
5    Frank   30    NY     57

In [32]:
print(list(df.reset_index().query('state == "CA"').index))


[1, 2, 4]

In [33]:
print(list(df.reset_index().query('state == "TX"').index))


[3]

In [34]:
print(df.reset_index().query('state == "TX"').index[0])


3