For example I have a dataframe like this.
Date Open High Low Close \
0 2009-08-25 20246.789063 20476.250000 20143.509766 20435.240234
Adj Close Volume
0 20435.240234 1531430000
Using attribute or explicit naming both give me the same output:
sum(data.Date==data['Date']) == data.shape[0]
True
However I cannot access columns that are named with white space, like 'Adj Close' with df.columnname, but can do with df['columnname'].
Is using df['columnname'] strictly better than using df.columnname ?
Accessing Single Column We can also access column of a DataFrame by using the below syntax, <DataFrame Object> [ <Column Name> ] <DataFrame Object> . <Column Name>
get_value() function is used to quickly retrieve the single value in the data frame at the passed column and index. The input to the function is the row label and the column label.
To select a single column, use square brackets [] with the column name of the column of interest.
Use DataFrame. loc[] and DataFrame. iloc[] to select a single column or multiple columns from pandas DataFrame by column names/label or index position respectively. where loc[] is used with column labels/names and iloc[] is used with column index/position.
Using .
as a column accessor is a convenience. There are many limitations beyond having spaces in the name. For example, if your column is named the same as an existing dataframe attribute or method, you won't be able to use it with a .
. A non-exhaustive list is mean
, sum
, index
, values
, to_dict
, etc. You also cannot reference columns with numeric headers via the .
accessor.
So, yes, ['col']
is strictly better than .col
because it is more consistent and reliable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With