How and why does the notation s[s] work?
I\'m taking one of the micro-courses from kaggle.com and they use the notation s[s] as shown below. I have not
This is quite complicated.
X_train is a pandas data frame.
X_train.dtypes is returning a pandas Series, where the index (name of each row) is equal to the column name.
We now do == on the Series which returns a new series, with the value true or false. So it looks like:
a True
b False
c True
Now we get to the x[x] which says to remove the 'false' values, giving a new Series:
a True
c True
Now we do .index and turn it into a list to give
['a', 'c' ]
Pandas DataFrames allow you to index using boolean arrays which is how s
is being used inside []
. The value of the Series is True
or False
as you can see, so we're selecting the values of s
where s
is True
. The purpose of this code is to get columns where the datatype is object
, you can do it with the function pandas.DataFrame.select_dtypes instead:
list(X_train.select_dtypes(include=['object']).columns)