개발/Python

[파이썬] pandas DataFrame의 첫 번째 열을 시리즈로 가져오는 방법은 무엇입니까?

MinorMan 2022. 10. 12. 07:17
반응형

<질문>

나는 시도했다:

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

그리고s Series가 아닌 DataFrame을 얻습니다.


<답변1>

>>> 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'>
>>>

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

업데이트

2017년 6월 이후에 이 글을 읽고 계시다면,ix pandas 0.20.2에서 더 이상 사용되지 않으므로 사용하지 마십시오. 사용loc 또는iloc 대신에. 이 질문에 대한 의견 및 기타 답변을 참조하십시오.


<답변2>

v0.11+부터 ... 사용df.iloc.

In [7]: df.iloc[:,0]
Out[7]: 
0    1
1    2
2    3
3    4
Name: x, dtype: int64

<답변3>

다음 코드를 사용하여 첫 번째 열을 시리즈로 가져올 수 있습니다.

x[x.columns[0]]

<답변4>

이것이 가장 간단한 방법이 아닙니까?

열 이름별:

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

<답변5>

이것은 csv 파일에서 시리즈를 로드하려는 경우에 효과적입니다.

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

<답변6>

df[df.columns[i]]

어디i 열의 위치/번호입니다(0).

그래서,i = 0 첫 번째 열에 대한 것입니다.

다음을 사용하여 마지막 열을 얻을 수도 있습니다.i = -1

반응형