Struggling to understand the difference between the 5 examples in the title. Are some use cases for series vs. data frames? When should one be used over the other? Which are equivalent?

1 Answer

  1. df[x] — index a column using variable x. Returns pd.Series
  2. df[[x]] — index/slice a single-column DataFrame using variable x. Returns pd.DataFrame
  3. df['x'] — index a column named 'x'. Returns pd.Series
  4. df[['x']] — index/slice a single-column DataFrame having only one column named 'x'. Returns pd.DataFrame
  5. df.x — dot accessor notation, equivalent to df['x'] (there are, however, limitations on what x can be named if dot notation is to be successfully used). Returns pd.Series

With single brackets [...] you may only index a single column out as a Series. With double brackets, [[...]], you may select as many columns as you need, and these columns are returned as part of a new DataFrame.


Setup

df ID x 0 0 0 1 1 15 2 2 0 3 3 0 4 4 0 5 5 15 x = 'ID' 

Examples

df[x] 0 0 1 1 2 2 3 3 4 4 5 5 Name: ID, dtype: int64 type(df[x]) pandas.core.series.Series 
df['x'] 0 0 1 15 2 0 3 0 4 0 5 15 Name: x, dtype: int64 type(df['x']) pandas.core.series.Series 
df[[x]] ID 0 0 1 1 2 2 3 3 4 4 5 5 type(df[[x]]) pandas.core.frame.DataFrame 
df[['x']] x 0 0 1 15 2 0 3 0 4 0 5 15 type(df[['x']]) pandas.core.frame.DataFrame 
df.x 0 0 1 15 2 0 3 0 4 0 5 15 Name: x, dtype: int64 type(df.x) pandas.core.series.Series 

Further reading
Indexing and Selecting Data

8

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy