Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

pandas DataFrame에서 맨 위에 행 추가

<시간/>

Pandas에서 DataFrame은 2차원 데이터 구조입니다. 즉, 데이터는 행과 열에서 표 형식으로 정렬됩니다. list, dict, series 및 다른 DataFrame을 사용하여 DataFrame을 만들 수 있습니다. 그러나 이미 생성된 DataFrame에 새 행을 추가하려는 경우 DataFrame의 끝에 추가하는 append와 같은 내장 메서드를 통해 달성됩니다. 이 기사에서는 DataFrame의 요소 인덱스와 관련된 몇 가지 트릭을 사용하여 DataFrame의 맨 위에 새 행 DataFrame을 추가하는 방법을 찾을 것입니다.

예시

먼저 아래와 같이 Pandas에서 새로운 DataFrame을 생성해 보겠습니다.

import pandas as pd
data = {'Name':['Tom', 'Jack', 'Mary', 'Ricky'],'Age':[28,34,29,42],'Gender':['M','M','F','F']}
df = pd.DataFrame(data)
print df

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Age       Gender      Name
0         28          MTom
1         34          MJack
2         29          FMary
3         42          F Ricky

접근법 1 - 위의 DataFrame 상단에 새 행을 추가하기 위해 따라야 할 첫 번째 접근 방식은 새로 들어오는 행을 DataFrame으로 변환하고 인덱스 값을 재설정하면서 기존 DataFrame과 연결하는 것입니다. 인덱스 재설정으로 인해 새 행이 맨 위에 추가됩니다.

예시

import pandas as pd
data = {'Name':['Tom', 'Jack', 'Mary', 'Ricky'],'Age':[28,34,29,42],'Gender':['M','M','F','F']}
df = pd.DataFrame(data)
top_row = pd.DataFrame({'Name':['Lavina'],'Age':[2],'Gender':['F']})
# Concat with old DataFrame and reset the Index.
df = pd.concat([top_row, df]).reset_index(drop = True)
print df
를 재설정합니다.

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

         Age       Gender      Name
0         2          F         Lavina
1         28         M         Tom
2         34         M         Jack
3         29         F         Mary
4         42         F         Ricky

접근법 2 - 이 접근 방식에서는 Dataframe.iloc[]을 사용합니다. 인덱스 위치 0에 새 행을 추가할 수 있는 메서드입니다. 아래 예에서는 .loc 메서드의 인덱스 값을 첫 번째 행의 인덱스 값인 0으로 언급하여 새 행을 목록으로 추가합니다.

예시

import pandas as pd
data = {'Name':['Tom', 'Jack', 'Mary', 'Ricky'],'Age':[28,34,29,42],'Gender':['M','M','F','F']}
df = pd.DataFrame(data)
# Add a new row at index position 0 with values provided in list
df.iloc[0] = ['7', 'F','Piyu']
print df

출력

위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

      Age    Gender   Name
0      7      F       Piyu
1      34     M       Jack
2      29     F       Mary
3      42     F       Ricky