import pandas as pd
create
딕셔너리 데이터로 만들기
dic = {
"Name" : ["lahong", "kkito"],
"email" : ["lahong@gmail.com", "kkito@naver.com"],
"id" : [1, 2],
}
df = pd.DataFrame(dic)
리스트로 만들기
ls = [
{"Name" : "lahong", "email" : "lahong@gmail.com", "id" :1},
{"Name" : "kkito", "email" : "kkito@naver.com", "id" :2}
]
df = pd.DataFrame(ls)
Name email id
0 lahong lahong@gmail.com 1
1 kkito kkito@naver.com 2
인덱스 설정
idx = ["one", "two"]
df = pd.DataFrame(ls, index=idx)
- set_index : 기존 인덱스 제거, 데이터 열 중 하나를 인덱스로 설정
- reset_index : 기존 인덱스 제거, 인덱스를 데이터 열로 추가 (drop=True)
insert
df.loc[len(df)] = {"id" : 3, "email" : "rabbir@gmail.com", "Name" : "Rabbit"}
Name email id
0 lahong lahong@gmail.com 1
1 kkito kkito@naver.com 2
2 Rabbit rabbir@gmail.com 3
데이터 조회 / 데이터타입 확인 수정
- df.index
- df.columns
- df.values
- df.dtypes
- df["id"].astype("float")
- df.loc[0:2]
- df.loc[::-1]
- df.loc[[1, 2],["id", "email"]
컬럼 데이터 추가
df["Address"] = ["Seoul", "Busan", "Jeju"]
Name email id Address
0 lahong lahong@gmail.com 1 Seoul
1 kkito kkito@naver.com 2 Busan
2 Rabbit rabbir@gmail.com 3 Jeju
Apply
- 모든 컬럼 요소에 함수를 적용해서 결과를 저장
- function의 map과 유사
import re
df["domain"] = df["email"].apply(
lambda data: re.findall("[\w]+@([0-9a-z]+)[.][0-9a-z]+", data)[0]
)
Name email id Address domain
0 lahong lahong@gmail.com 1 Seoul gmail
1 kkito kkito@naver.com 2 Busan naver
2 Rabbit rabbir@gmail.com 3 Jeju gmail