자꾸 잊어버리는 통에 자주 사용되는 판다스 명령어들을 정리하였습니다.
url = "*"
df = pd.load_csv(url)
데이터의 일부만 출력
df.head()
df.tail()
df.sample()
데이터에 대한 통계량 일괄 출력
df.describe()
범주형 데이터의 범주별 수량 출력
df['Class'].values_count()
특정 컬럼(series) 값들의 통계량 출력
df['Class'].sum()
df['Class'].mean()
df['Class'].median()
컬럼 내 고윳값 확인(unique) 및 고윳값의 개수 확인(nunique)
df['Class'].unique()
df['Class'].nunique()
df.groupby('Class').mean()
df.groupby('Class').median()
df.groupby('Class').count()
df.groupby('Class').agg(['count','mean'])
df.groupby('Name')['Salary'].mean()
df.groupby('Name')['Salary'].var()
# comma 로 구분
grouped_df = df.groupby('Name')['Age'].apply(lambda x: ', '.join(map(str, x)))
df_dict = {
"name" : ["k", "g", "h"],
"age" : [10, 20, 30],
"sex" : ['F', 'M', 'M']
}
df = pd.DataFrame(df_dict)
series는 인덱스만 존재하므로 columns은 따로 입력해줘야 한다.
pd.DataFrame(df.dtypes, columns=["dtype"])
# 인덱스 초기화 후 기존 인덱스는 신규 컬럼으로
df.reset_index()
# 인덱스 초기화 후 기존 인덱스는 제거
df.reset_index(drop=True)
# 행 삭제 (0번, 3번 인덱스)
df_dropped = df.drop(labels=[0, 3], axis=0)
# 열 삭제 (class 피처)
df_dropped = df.drop(['Class'], axis=1)
# 1행의 값들을 컬럼값으로 변경
df = df.set_axis(df.iloc[0], axis=1)
# 기존 1행은 삭제
df = df.drop(labels=0, axis=0)
original_col = ["A", "B", "C"]
converted_col = ["D", "E", "F"]
dict_for_changes = dict(zip(original_col, converted_col))
df = df.rename(columns = dict_for_changes)
# 이름을 인덱스로
df_indexed = df.set_index('Name')
Merge의 형태에는 다음 4가지가 존재
1. inner
2. right (right-outer)
3. left (left-outer)
4. full (full-outer)
merge는 합칠 컬럼을 on을 통해 지정하는 가장 기본적인 조인의 형태
# Merge
df1 = pd.DataFrame({'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]})
df2 = pd.DataFrame({'ID': [2, 3, 4],
'Salary': [5000, 6000, 7000]})
result = pd.merge(df1, df2, on='ID', how='inner')
특정 컬럼 기반으로 정렬
sorted_df = df.sort_values('Age')
print(sorted_df)
리턴 값은 series의 형태입니다.
df.dtypes
데이터프레임이나 시리즈를 넘파이 어레이로 변경하려면 values를 이용한다.
index와 columns값은 소실된다.
df.values
df['Class'].values