Difference between df[x], df[[x]], df['x'] , df[['x']] and df.x

后端 未结 1 1823
深忆病人
深忆病人 2021-01-02 09:50

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

1条回答
  •  走了就别回头了
    2021-01-02 10:20

    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

    0 讨论(0)
提交回复
热议问题