programing

판다에서 데이터 프레임의 첫 번째 및 마지막 행 추출

iphone6s 2023. 8. 15. 10:55
반응형

판다에서 데이터 프레임의 첫 번째 및 마지막 행 추출

판다에서 주어진 데이터 프레임의 첫 번째 행과 마지막 행을 새로운 데이터 프레임으로 추출하려면 어떻게 해야 합니까?

사용해 보았습니다.iloc원하는 행을 선택한 다음concat다음과 같이:

df=pd.DataFrame({'a':range(1,5), 'b':['a','b','c','d']})
pd.concat([df.iloc[0,:], df.iloc[-1,:]])

그러나 이것은 판다 데이터 프레임을 생성하지 않습니다.

a    1
b    a
a    4
b    d
dtype: object

가장 간단한 방법은.iloc[[0, -1]].

df = pd.DataFrame({'a':range(1,5), 'b':['a','b','c','d']})
df2 = df.iloc[[0, -1]]
    
print(df2)

   a  b
0  1  a
3  4  d

사용할 수도 있습니다.head그리고.tail:

In [29]: pd.concat([df.head(1), df.tail(1)])
Out[29]:
   a  b
0  1  a
3  4  d

프레임에 단일 행만 포함된 경우 승인된 응답은 첫 번째 행을 복제합니다.그게 걱정이라면

df[0::len(df)-1 if len(df) > 1 else 1]

단일 행 데이터 프레임에서도 작동합니다.

예:다음 데이터 프레임의 경우 중복이 생성되지 않습니다.

df = pd.DataFrame({'a': [1], 'b':['a']})
df2 = df[0::len(df)-1 if len(df) > 1  else 1]

print df2

   a  b
0  1  a

반면에 이것은 다음과 같습니다.

df3 = df.iloc[[0, -1]]

print df3 

   a  b
0  1  a
0  1  a

단일 행이 첫 번째 행이자 마지막 행이기 때문입니다.

매개 변수를 추가해 볼 수 있을 것 같습니다.axis=1의 출력 때문에df.iloc[0,:]그리고.df.iloc[-1,:]이다Series및 다음과 같이 전치합니다.

print df.iloc[0,:]
a    1
b    a
Name: 0, dtype: object

print df.iloc[-1,:]
a    4
b    d
Name: 3, dtype: object

print pd.concat([df.iloc[0,:], df.iloc[-1,:]], axis=1)
   0  3
a  1  4
b  a  d

print pd.concat([df.iloc[0,:], df.iloc[-1,:]], axis=1).T
   a  b
0  1  a
3  4  d

또는 다음을 사용할 수 있습니다.

In [3]: df.take([0, -1])
Out[3]: 
   a  b
0  1  a
3  4  d

다음은 대규모 데이터셋과 동일한 스타일입니다.

x = df[:5]
y = pd.DataFrame([['...']*df.shape[1]], columns=df.columns, index=['...'])
z = df[-5:]
frame = [x, y, z]
result = pd.concat(frame)

print(result)

출력:

                     date  temp
0     1981-01-01 00:00:00  20.7
1     1981-01-02 00:00:00  17.9
2     1981-01-03 00:00:00  18.8
3     1981-01-04 00:00:00  14.6
4     1981-01-05 00:00:00  15.8
...                   ...   ...
3645  1990-12-27 00:00:00    14
3646  1990-12-28 00:00:00  13.6
3647  1990-12-29 00:00:00  13.5
3648  1990-12-30 00:00:00  15.7
3649  1990-12-31 00:00:00    13

언급URL : https://stackoverflow.com/questions/36542169/extract-first-and-last-row-of-a-dataframe-in-pandas

반응형