반응형
판다에서 데이터 프레임의 첫 번째 및 마지막 행 추출
판다에서 주어진 데이터 프레임의 첫 번째 행과 마지막 행을 새로운 데이터 프레임으로 추출하려면 어떻게 해야 합니까?
사용해 보았습니다.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
반응형
'programing' 카테고리의 다른 글
| 각도 2에서 비동기 검증기에 데바운스 시간을 추가하는 방법은 무엇입니까? (0) | 2023.08.15 |
|---|---|
| Oracle PL/SQL에 대한 좋은 참조 자료 (0) | 2023.08.15 |
| JDBC Oracle - 쿼리에 대한 설명 계획 가져오기 (0) | 2023.08.15 |
| 입력 값이 프로그래밍 방식으로 변경될 때 트리거 Change 이벤트? (0) | 2023.08.15 |
| 도커 합성 실행을 사용하여 로그 출력을 보는 방법은 무엇입니까? (0) | 2023.08.15 |