λ°μν
νλ€μ€(Pandas)
νλ€μ€(Pandas)λ νμ΄μ¬μμ λ°μ΄ν° μ‘°μκ³Ό λΆμμ μν λΌμ΄λΈλ¬λ¦¬λ‘, νΉν ν νμμ λ°μ΄ν°λ₯Ό λ€λ£¨κΈ°μ μ©μ΄νλ€. νλ€μ€μ μ£Όμ μλ£κ΅¬μ‘°μΈ λ°μ΄ν°νλ μ(DataFrame)μ νκ³Ό μ΄λ‘ μ΄λ£¨μ΄μ§ ν
μ΄λΈ νμμ λ°μ΄ν°λ₯Ό λ€λ£¨κΈ° μν μλ£κ΅¬μ‘°λ‘ λ°μ΄ν°λ₯Ό λ€λ£° λ μμ£Ό μ¬μ©λλ€.
λ°μ΄ν°νλ μ μμ±
import pandas as pd
# 2μ°¨μ 리μ€νΈλ‘ λ°μ΄ν°νλ μ μμ±
data = [
['Alice', 25, 'New York'],
['Bob', 30, 'San Francisco'],
['Charlie', 35, 'Los Angeles']
]
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
- νλ€μ€μ pd.DataFrame() ν¨μλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°νλ μμ μμ±ν μ μλ€.
- μΌλ°μ μΌλ‘ 2μ°¨μ 리μ€νΈ, λμ λ리, λνμ΄ λ°°μ΄ λ±μ μ΄μ©νμ¬ λ°μ΄ν°νλ μμ λ§λ λ€.
λ°μ΄ν°νλ μ κΈ°λ³Έ μ 보 νμΈ
# λ°μ΄ν°νλ μμ μ²μ 5κ° ν μΆλ ₯
print(df.head())
# λ°μ΄ν°νλ μμ κΈ°λ³Έ μ 보 μΆλ ₯
print(df.info())
# λ°μ΄ν°νλ μμ ν΅κ³μ μμ½ μΆλ ₯
print(df.describe())
- head(), tail(), info(), describe() λ±μ λ©μλλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°νλ μμ μΌλΆ λ°μ΄ν°λ κΈ°λ³Έ μ 보λ₯Ό νμΈν μ μλ€.
μΈλ±μ€ λ° μ΄ μ‘°μ
# μΈλ±μ€λ₯Ό μ¬μ©νμ¬ νΉμ ν μ ν
row = df.loc[0]
# μ΄μ μ΄λ¦μ μ¬μ©νμ¬ νΉμ μ΄ μ ν
column = df['Name']
- μΈλ±μ€(index)λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°νλ μμ νΉμ νμ μ ννκ±°λ, μ΄μ μ΄λ¦μ μ¬μ©νμ¬ νΉμ μ΄μ μ νν μ μλ€.
쑰건 κ²μκ³Ό νν°λ§
# 쑰건 κ²μ
filtered_df = df[df['Age'] > 30]
# μ¬λ¬ 쑰건 κ²°ν©
filtered_df = df[(df['Age'] > 30) & (df['City'] == 'San Francisco')]
- 쑰건μ μ¬μ©νμ¬ νΉμ 쑰건μ λ§μ‘±νλ νμ κ²μνκ±°λ, μ¬λ¬ 쑰건μ κ²°ν©νμ¬ λ°μ΄ν°λ₯Ό νν°λ§ν μ μλ€.
- μ¬μ€μ μ΄λ° λ°μ΄ν° νν°λ§μ΄λ κ²μμ μν΄ λ°μ΄ν°νλ μμ μ¬μ©νλ€κ³ 보면 λλ€.
- 리μ€νΈμμ μΈλ±μ€ λ³λ‘ μννλ©΄μ λ°μ΄ν°λ₯Ό νν°λ§νλ©΄ μκ°μ΄ κ΅μ₯ν μ€λ κ±Έλ¦¬κ³ μ¬λ¬ 쑰건μ ν λ²μ νν°λ§νκΈ°λ κΉλ€λ‘μ§λ§, λ°μ΄ν°νλ μμ μ¬μ©νλ©΄ κ°λ¨ν΄ μ§λ€.
λ°μ΄ν°νλ μ - 리μ€νΈ λ³ν
import pandas as pd
# μν λ°μ΄ν°νλ μ μμ±
data = {'A': [1, 2, 3], 'B': ['a', 'b', 'c']}
df = pd.DataFrame(data)
# λ°μ΄ν°νλ μμ 리μ€νΈλ‘ λ³ν
list_from_df = df.values.tolist()
# κ²°κ³Ό μΆλ ₯
print(list_from_df)
# μν 리μ€νΈ μμ±
list_data = [[1, 'a'], [2, 'b'], [3, 'c']]
# 리μ€νΈλ₯Ό λ°μ΄ν°νλ μμΌλ‘ λ³ν
df_from_list = pd.DataFrame(list_data, columns=['A', 'B'])
# κ²°κ³Ό μΆλ ₯
print(df_from_list)
- λ°μ΄ν°νλ μ → 리μ€νΈ
- df.valuesλ λ°μ΄ν°νλ μμ κ°λ€μ NumPy λ°°μ΄λ‘ λ°ννκ³ , tolist() λ©μλλ₯Ό μ¬μ©νμ¬ μ΄λ₯Ό νμ΄μ¬ 리μ€νΈλ‘ λ³ν
- 리μ€νΈ → λ°μ΄ν°νλ μ
- pd.DataFrame() ν¨μλ₯Ό μ¬μ©νμ¬ λ¦¬μ€νΈλ₯Ό λ°μ΄ν°νλ μμΌλ‘ λ³ν
- columns 맀κ°λ³μλ₯Ό μ¬μ©νμ¬ μ΄ μ΄λ¦μ μ§μ ν μ μμ
νμΌ μ μΆλ ₯
# CSV νμΌλ‘ μ μ₯
df.to_csv('output.csv', index=False)
# CSV νμΌ μ½κΈ°
new_df = pd.read_csv('output.csv')
- νλ€μ€λ λ€μν λ°μ΄ν° νμμΌλ‘ λ°μ΄ν°νλ μμ μ μ₯νκ³ μ½μ μ μλ κΈ°λ₯μ μ 곡νλ€.
- to_csv(), to_excel(), read_csv(), read_excel() λ±μ λ©μλλ₯Ό μ¬μ©νμ¬ νμΌ μ μΆλ ₯μ΄ κ°λ₯νλ€.
νλ€μ€ λ°μ΄ν°νλ μμ λ°μ΄ν° μ‘°μ, νν°λ§, μκ°ν, ν΅κ³ λΆμ λ± λ€μν μμ μ μννλ λ°μ νΈλ¦¬νκ² μ¬μ©λλ κ°λ ₯ν λꡬμ΄κΈ°μ νλ² μ―€ μ¬μ©λ²μ μ΅νλλ©΄ μΈμ κ° μΈλͺ¨κ° μλ€ !
λ°μν