pandas 中双括号"[[...]]"和单括号`[..]`索引之间的区别 [英] The difference between double brace `[[...]]` and single brace `[..]` indexing in Pandas
问题描述
我对以下代码行的语法感到困惑:
I'm confused about the syntax regarding the following line of code:
x_values = dataframe[['Brains']]
数据框对象由2列(大脑"和身体")组成
The dataframe object consists of 2 columns (Brains and Bodies)
Brains Bodies
42 34
32 23
当我打印x_values时,我得到这样的东西:
When I print x_values I get something like this:
Brains
0 42
1 32
就数据帧对象的属性和方法而言,我知道pandas文档,但是双括号语法使我感到困惑.
I'm aware of the pandas documentation as far as attributes and methods of the dataframe object are concerned, but the double bracket syntax is confusing me.
推荐答案
请考虑以下问题:
源DF:
In [79]: df
Out[79]:
Brains Bodies
0 42 34
1 32 23
选择一列-生成Pandas.Series:
Selecting one column - results in Pandas.Series:
In [80]: df['Brains']
Out[80]:
0 42
1 32
Name: Brains, dtype: int64
In [81]: type(df['Brains'])
Out[81]: pandas.core.series.Series
选择DataFrame的子集-生成DataFrame:
Selecting subset of DataFrame - results in DataFrame:
In [82]: df[['Brains']]
Out[82]:
Brains
0 42
1 32
In [83]: type(df[['Brains']])
Out[83]: pandas.core.frame.DataFrame
结论:第二种方法允许我们从DataFrame中选择多个列.第一个仅用于选择单列...
Conclusion: the second approach allows us to select multiple columns from the DataFrame. The first one just for selecting single column...
演示:
In [84]: df = pd.DataFrame(np.random.rand(5,6), columns=list('abcdef'))
In [85]: df
Out[85]:
a b c d e f
0 0.065196 0.257422 0.273534 0.831993 0.487693 0.660252
1 0.641677 0.462979 0.207757 0.597599 0.117029 0.429324
2 0.345314 0.053551 0.634602 0.143417 0.946373 0.770590
3 0.860276 0.223166 0.001615 0.212880 0.907163 0.437295
4 0.670969 0.218909 0.382810 0.275696 0.012626 0.347549
In [86]: df[['e','a','c']]
Out[86]:
e a c
0 0.487693 0.065196 0.273534
1 0.117029 0.641677 0.207757
2 0.946373 0.345314 0.634602
3 0.907163 0.860276 0.001615
4 0.012626 0.670969 0.382810
,如果我们仅在列表中指定一列,我们将获得一个包含一列的DataFrame:
and if we specify only one column in the list we will get a DataFrame with one column:
In [87]: df[['e']]
Out[87]:
e
0 0.487693
1 0.117029
2 0.946373
3 0.907163
4 0.012626
这篇关于 pandas 中双括号"[[...]]"和单括号`[..]`索引之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!