努力理解标题中5个例子之间的区别。是系列与数据框架的一些用例吗?应该何时使用另一个?哪个是等价的?
答案 0 :(得分:7)
df[x]
- 使用变量x
索引列。返回pd.Series
df[[x]]
- 使用变量x
索引/切片单列DataFrame。返回pd.DataFrame
df['x']
- 索引名为“x”的列。返回pd.Series
df[['x']]
- 索引/切片只有一列名为“x”的单列DataFrame。返回pd.DataFrame
df.x
- 点访问器表示法,相当于df['x']
(如果要成功使用点表示法,x
可以命名limitations 。返回pd.Series
使用单括号[...]
,您只能将单个列索引为系列。使用双括号[[...]]
,您可以根据需要选择任意数量的列,这些列将作为新DataFrame的一部分返回。
<强>设置强>
df
ID x
0 0 0
1 1 15
2 2 0
3 3 0
4 4 0
5 5 15
x = 'ID'
<强>实施例强>
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