Pandas DataFrame DataFrame.append() 함수

  1. pandas.DataFrame.append()메서드 구문:
  2. 예제 코드: pandas.DataFrame.append()를 사용하여 두 개의 DataFrame 추가
  3. 예제 코드: pandas.DataFrame.append()를 사용하여 DataFrames 추가 및 색인 무시
  4. DataFrame.append()메서드에서verify_integrity=True 설정
  5. 예제 코드: 다른 열로 데이터 프레임 추가

pandas.DataFrame.append()은 DataFrame을 입력으로 취하고 행을 다음과 병합합니다. 메서드를 호출하는 DataFrame의 행은 마지막으로 새 DataFrame을 반환합니다. 입력 DataFrame의 열이 호출자 DataFrame에 없으면 해당 열이 DataFrame에 추가되고 누락 된 값은 NaN으로 설정됩니다.

pandas.DataFrame.append()메서드 구문:

DataFrame.append(
                 other, 
                 ignore_index=False, 
                 verify_integrity=False, 
                 sort=False) 

매개 변수

other 입력 DataFrame 또는 Series, 또는 행이 추가 될 Python Dictionary와 유사한
ignore_index 부울. True인 경우 원래 DataFrame의 색인이 무시됩니다. 기본값은 색인이 사용됨을 의미하는 False입니다.
verify_integrity 부울. True인 경우 중복 색인 생성시 ValueError를 발생시킵니다. 기본값은 False입니다.
sort 부울. 열이 정렬되지 않은 경우 원본과 다른 DataFrame을 정렬합니다.

예제 코드: pandas.DataFrame.append()를 사용하여 두 개의 DataFrame 추가

import pandas as pd

names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]

names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]

df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2})


merged_df = df_1.append(df_2)
print(merged_df)

산출:

     Name  Salary
0  Hisila      23
1   Brian      30
2   Zeppy      21
    Name  Salary
0    Ram      22
1  Shyam      23
2   Hari      31
     Name  Salary
0  Hisila      23
1   Brian      30
2   Zeppy      21
0     Ram      22
1   Shyam      23
2    Hari      31

df_1 끝에df_2를 추가하고 두 DataFrame의 병합 행을merged_df 반환합니다. 여기서 merged_df의 색인은 상위 DataFrame과 동일합니다.

예제 코드: pandas.DataFrame.append()를 사용하여 DataFrames 추가 및 색인 무시

import pandas as pd

names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]

names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]

df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2})

merged_df = df_1.append(df_2,ignore_index=True)

print(df_1)
print(df_2)
print( merged_df)

산출:

     Name  Salary
0  Hisila      23
1   Brian      30
2   Zeppy      21
    Name  Salary
0    Ram      22
1  Shyam      23
2   Hari      31
     Name  Salary
0  Hisila      23
1   Brian      30
2   Zeppy      21
3     Ram      22
4   Shyam      23
5    Hari      31

df_1 끝에df_2를 추가하고 여기서merged_dfappend()메서드에서ignore_index=True 인수를 사용하여 완전히 새로운 인덱스를 가져옵니다.

DataFrame.append()메서드에서verify_integrity=True 설정

append()메소드에서verify_integrity=True를 설정하면 중복 인덱스에 대해ValueError가 발생합니다.

import pandas as pd

names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]

names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]

df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2})

merged_df = df_1.append(df_2,verify_integrity=True)

print(df_1)
print(df_2)
print( merged_df)

산출:

ValueError: Indexes have overlapping values: Int64Index([0, 1, 2], dtype='int64')

df_1df_2의 요소는 기본적으로 동일한 인덱스를 갖기 때문에ValueError를 생성합니다. 이 오류를 방지하기 위해 기본값 인verify_integrity, 즉verify_integrity=False를 사용합니다.

예제 코드: 다른 열로 데이터 프레임 추가

다른 열과 함께DataFrame을 추가하면이 열이 결과DataFrame에 추가되고 원본 또는 다른DataFrame에있는 존재하지 않는 열의 해당 셀이NaN으로 설정됩니다.

import pandas as pd

names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]

names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]
Age=[30,31,33]

df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2,"Age":Age})

merged_df = df_1.append(df_2, sort=False)

print(df_1)
print(df_2)
print( merged_df)

산출:

     Name  Salary
0  Hisila      23
1   Brian      30
2   Zeppy      21
    Name  Salary  Age
0    Ram      22   30
1  Shyam      23   31
2   Hari      31   33
     Name  Salary   Age
0  Hisila      23   NaN
1   Brian      30   NaN
2   Zeppy      21   NaN
0     Ram      22  30.0
1   Shyam      23  31.0
2    Hari      31  33.0

여기서df_1의 행은Age 열이df_2에만 존재하므로Age 열에 대한NaN 값을 가져옵니다.

또한sort = False를 설정하여 향후 Pandas 버전에서 정렬이 더 이상 사용되지 않는다는 경고를 표시하지 않습니다.

관련 문장 - Pandas DataFrame

  • Pandas DataFrame DataFrame.sample() 함수
  • Pandas DataFrame DataFrame.aggregate() 함수