问题
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:
df[x]
— index a column using variablex
. Returnspd.Series
df[[x]]
— index/slice a single-column DataFrame using variablex
. Returnspd.DataFrame
df['x']
— index a column named 'x'. Returnspd.Series
df[['x']]
— index/slice a single-column DataFrame having only one column named 'x'. Returnspd.DataFrame
df.x
— dot accessor notation, equivalent todf['x']
(there are, however, limitations on whatx
can be named if dot notation is to be successfully used). Returnspd.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
来源:https://stackoverflow.com/questions/50302180/difference-between-dfx-dfx-dfx-dfx-and-df-x