How to get the first column of a pandas DataFrame as a Series?

前端 未结 6 1504
花落未央
花落未央 2020-12-12 11:36

I tried:

x=pandas.DataFrame(...)
s = x.take([0], axis=1)

And s gets a DataFrame, not a Series.

相关标签:
6条回答
  • 2020-12-12 12:19
    df[df.columns[i]]
    

    where i is the position/number of the column(starting from 0).

    So, i = 0 is for the first column.

    You can also get the last column using i = -1

    0 讨论(0)
  • 2020-12-12 12:20

    Isn't this the simplest way?

    By column name:

    In [20]: df = pd.DataFrame({'x' : [1, 2, 3, 4], 'y' : [4, 5, 6, 7]})
    In [21]: df
    Out[21]:
        x   y
    0   1   4
    1   2   5
    2   3   6
    3   4   7
    
    In [23]: df.x
    Out[23]:
    0    1
    1    2
    2    3
    3    4
    Name: x, dtype: int64
    
    In [24]: type(df.x)
    Out[24]:
    pandas.core.series.Series
    
    0 讨论(0)
  • 2020-12-12 12:21
    >>> import pandas as pd
    >>> df = pd.DataFrame({'x' : [1, 2, 3, 4], 'y' : [4, 5, 6, 7]})
    >>> df
       x  y
    0  1  4
    1  2  5
    2  3  6
    3  4  7
    >>> s = df.ix[:,0]
    >>> type(s)
    <class 'pandas.core.series.Series'>
    >>>
    

    ===========================================================================

    UPDATE

    If you're reading this after June 2017, ix has been deprecated in pandas 0.20.2, so don't use it. Use loc or iloc instead. See comments and other answers to this question.

    0 讨论(0)
  • 2020-12-12 12:24

    From v0.11+, ... use df.iloc.

    In [7]: df.iloc[:,0]
    Out[7]: 
    0    1
    1    2
    2    3
    3    4
    Name: x, dtype: int64
    
    0 讨论(0)
  • 2020-12-12 12:24

    This works great when you want to load a series from a csv file

    x = pd.read_csv('x.csv', index_col=False, names=['x'],header=None).iloc[:,0]
    print(type(x))
    print(x.head(10))
    
    
    <class 'pandas.core.series.Series'>
    0    110.96
    1    119.40
    2    135.89
    3    152.32
    4    192.91
    5    177.20
    6    181.16
    7    177.30
    8    200.13
    9    235.41
    Name: x, dtype: float64
    
    0 讨论(0)
  • 2020-12-12 12:31

    You can get the first column as a Series by following code:

    x[x.columns[0]]
    
    0 讨论(0)
提交回复
热议问题