df [x],df [[x]],df [' x'],df [[' x']]和df.x之间的差异

时间:2018-05-12 01:48:11

标签: python pandas dataframe series

努力理解标题中5个例子之间的区别。是系列与数据框架的一些用例吗?应该何时使用另一个?哪个是等价的?

1 个答案:

答案 0 :(得分:7)

  1. df[x] - 使用变量x索引列。返回pd.Series
  2. df[[x]] - 使用变量x索引/切片单列DataFrame。返回pd.DataFrame
  3. df['x'] - 索引名为“x”的列。返回pd.Series
  4. df[['x']] - 索引/切片只有一列名为“x”的单列DataFrame。返回pd.DataFrame
  5. df.x - 点访问器表示法,相当于df['x'](如果要成功使用点表示法,x可以命名limitations 。返回pd.Series
  6. 使用单括号[...],您只能将单个列索引为系列。使用双括号[[...]],您可以根据需要选择任意数量的列,这些列将作为新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
    

    进一步阅读
    Indexing and Selecting Data