팬더스에서 빈 데이터프레임에 데이터 추가하기
append() 메서드 사용:
import pandas as pd
# 빈 데이터프레임 만들기
df = pd.DataFrame()
# 데이터 추가
new_data = {'열1': [1, 2, 3], '열2': ['a', 'b', 'c']}
df = df.append(pd.DataFrame(new_data))
# 결과 출력
print(df)
loc[] 사용:
import pandas as pd
# 빈 데이터프레임 만들기
df = pd.DataFrame()
# 데이터 추가
df.loc[0] = [1, 'a']
df.loc[1] = [2, 'b']
df.loc[2] = [3, 'c']
# 결과 출력
print(df)
concat() 메서드 사용:
import pandas as pd
# 빈 데이터프레임 만들기
df = pd.DataFrame()
# 데이터 추가
new_data = pd.DataFrame({'열1': [1, 2, 3], '열2': ['a', 'b', 'c']})
df = pd.concat([df, new_data])
# 결과 출력
print(df)
위의 방법 외에도 다양한 방법으로 빈 데이터프레임에 데이터를 추가할 수 있습니다. 사용하는 방법은 상황에 따라 다릅니다.
참고:
- 데이터프레임에 데이터를 추가할 때 열 이름이 일치하는지 확인해야 합니다.
append()
메서드를 사용하면 데이터프레임의 인덱스가 자동으로 변경될 수 있습니다.loc[]
사용 시 인덱스를 직접 지정할 수 있습니다.
예제 코드: pandas
를 사용하여 빈 데이터프레임에 데이터 추가하기
append() 메서드 사용
import pandas as pd
# 빈 데이터프레임 만들기
df = pd.DataFrame()
# 열 이름 지정
df.columns = ['열1', '열2']
# 데이터 추가 (딕셔너리 형식)
new_data = {'열1': [1, 2, 3], '열2': ['a', 'b', 'c']}
df = df.append(pd.DataFrame(new_data))
# 결과 출력
print(df)
설명:
pandas
라이브러리를pd
라는 별칭으로 임포트합니다.DataFrame()
함수를 사용하여 빈 데이터프레임을 만듭니다.columns
속성을 사용하여 데이터프레임의 열 이름을 지정합니다.new_data
라는 딕셔너리에 데이터를 저장합니다. 딕셔너리의 키는 열 이름과 일치해야 합니다.append()
메서드를 사용하여new_data
를 데이터프레임에 추가합니다.print()
함수를 사용하여 결과 데이터프레임을 출력합니다.
출력:
열1 열2
0 1 a
1 2 b
2 3 c
loc[] 사용
import pandas as pd
# 빈 데이터프레임 만들기
df = pd.DataFrame()
# 열 이름 지정
df.columns = ['열1', '열2']
# 데이터 추가 (리스트 형식)
data = [[1, 'a'], [2, 'b'], [3, 'c']]
for i in range(len(data)):
df.loc[i] = data[i]
# 결과 출력
print(df)
data
라는 리스트에 데이터를 저장합니다. 리스트의 각 요소는 행 하나의 데이터를 나타냅니다.- 반복문을 사용하여
loc[]
인덱싱을 사용하여 각 행에 데이터를 추가합니다.
열1 열2
0 1 a
1 2 b
2 3 c
추가 예제
앞서 언급한 concat()
메서드를 사용하여 데이터프레임을 병합하는 방법 또한 빈 데이터프레임에 데이터를 추가하는 데 활용할 수 있습니다.
import pandas as pd
# 빈 데이터프레임 만들기
df = pd.DataFrame()
# 열 이름 지정
df.columns = ['열1', '열2']
# 데이터 추가 (DataFrame 형식)
new_data = pd.DataFrame({'열1': [4, 5, 6], '열2': ['d', 'e', 'f']})
df = pd.concat([df, new_data])
# 결과 출력
print(df)
열1 열2
0 1 a
1 2 b
2 3 c
3 4 d
4 5 e
5 6 f
빈 데이터프레임에 데이터 추가: 대체 방법
import pandas as pd
# 빈 데이터프레임 만들기
df = pd.DataFrame()
# 열 이름 지정
df.columns = ['열1', '열2']
# 데이터 추가
df = df.assign(열1=[1, 2, 3], 열2=['a', 'b', 'c'])
# 결과 출력
print(df)
assign()
메서드는 새로운 열을 생성하거나 기존 열의 값을 업데이트하는 데 사용할 수 있습니다.- 딕셔너리 형식으로 데이터를 전달하면 새로운 열이 생성되고, 키가 열 이름이 됩니다.
- 기존 열에 값을 추가하려면 딕셔너리의 값으로 리스트를 사용합니다.
ix[] 인덱싱 사용:
import pandas as pd
# 빈 데이터프레임 만들기
df = pd.DataFrame()
# 열 이름 지정
df.columns = ['열1', '열2']
# 데이터 추가
df.ix[0, '열1'] = 1
df.ix[0, '열2'] = 'a'
df.ix[1, '열1'] = 2
df.ix[1, '열2'] = 'b'
df.ix[2, '열1'] = 3
df.ix[2, '열2'] = 'c'
# 결과 출력
print(df)
ix[]
인덱싱을 사용하여 특정 행과 열에 데이터를 직접 할당할 수 있습니다.- 행은 숫자 인덱스 또는 라벨로, 열은 이름으로 참조합니다.
- 여러 값을 동시에 할당하려면 리스트를 사용합니다.
itertuples() 사용:
import pandas as pd
# 빈 데이터프레임 만들기
df = pd.DataFrame()
# 열 이름 지정
df.columns = ['열1', '열2']
# 데이터 추가
for i, row in df.itertuples():
df.loc[i, '열1'] = i
df.loc[i, '열2'] = chr(i + 97)
# 결과 출력
print(df)
itertuples()
메서드는 데이터프레임의 각 행을 튜플 형식으로 반환합니다.- 튜플을 사용하여 행 인덱스와 데이터에 액세스할 수 있습니다.
loc[]
인덱싱을 사용하여 데이터를 업데이트합니다.
주의 사항:
ix[]
인덱싱은 Pandas 0.24 버전 이후 비推奨되었으므로, 향후 코드 작성 시loc[]
또는[]
인덱싱을 사용하는 것이 좋습니다.
python pandas