# pandas 이용한 파일 불러오기 # 1 import pandas as pd --> 선언 import numpy as np --> 선언
- pandas는 통상 pd
- numpy는 통상 np
# 2 변수명 = pd.read_csv("../파일경로/파일명.csv") # 3 한글오류방지 변수명 = pd.read_csv("../파일경로/파일명.csv", encoding="utf-8)
index와 value로 이루어져 있습니다
한 가지 데이터 타입만 가질 수 있습니다
numpy와 pandas 패키지를 모두 import해야한다.
# Series 만들기
list = pd.Series({1, 3, 5, np.nan, 6, 8})
array = pd.Series(np.array([1, 2, 3, 4]))
# dtype-str설정
str = pd.Series([1, 2, 3, 4], dtype=str)
# dtype-float64설정
float64 = pd.Series([1, 2, 3, 4], dtype=np.float64)
# 날짜(시간)을 이용
dates = pd.date_range("20230606", periods=6)
출처 : https://seong6496.tistory.com/120
randint
vs rand
, randn
np.random.randint
: 사이숫자 랜덤하게 1개 뽑기np.random.rand
: 0부터 1사이의 균일분포 표준 정규분포에서 난수생성np.random.randn
: 평균0, 표준편차1의 표준 정규분포에서 난수생성# 표준 정규분포에서 난수 생성(np.random.randn)
data = np.random.randn(6, 4)
data
# DataFrame 생성
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=["A", "B", "C", "D"])
# 오름차순 : ascending=True
df.sort_values(by="columnName", ascending=True)
# 내림차순 : ascending=False
df.sort_values(by="columnName", ascending=False)
# 새로운정보 저장 : inplace=True
df.sort_values(by="columnName", ascending=False, inplace=True)
df["columnName"]
df.columnName
df[["A", "B"]]
# index 0부터 2까지
df[0:3]
# 20230604부터 20230606까지
df["20230604":"20230606"]
# column A와 B의 전체인덱스의값
df.loc[:, ["columnNameA", "columnNameB"]]
# column A와 B의 index 0부터 5까지의값
df.loc["indexName0":"indexName5", ["columnNameA", "columnNameB"]]
# column A부터 D index 0부터 3까지의값
df.loc["indexName0":"indexName3", "columnNameA":"columnNameD"]
# column A와 B index 2 의값
df.loc["indexName2", ["columnNameA", "columnNameB"]]
df.iloc[3]
df.iloc[3, 2]
df.iloc[3:5, 0:2]
df.iloc[[1, 2, 4], [0, 2]]
df.iloc[:, 1:3]
df["A"] > 0
df[df["A"] > 0]
df[df > 0]
NaN : Not a Number
isin()
# 특정요소 있는지 확인
df["E"].isin(["TWO", "four"])
--> "E"열에 "TWO", "four" 있으면 True, 없는열은 False
# 특정요소가 있는 행만 선택
df[df["E"].isin(["TWO", "four"])]
--> "E"열에 "TWO", "four"가 있는 특정열만 보여줌
del
del df["E"] --> "E"열 제거
drop
df.drop(["20230601"])
df.drop(["D"], axis=1) # axis=0 가로, axis=1 세로
df["A"].apply("sum")
df[["A", "D"]].apply("sum")
df["A"].apply("mean")
df["A"].apply("min"), df["A"].apply("max")
# 합
df["A"].apply(np.sum)
# 평균
df["A"].apply(np.mean)
# 지정된 축에 따른 표준편차계산
df["A"].apply(np.std)
# 각 컬럼별 합
df.apply(np.sum)
lambda 매개변수 : 표현식
.head()
--> 시작자료 5개 자료 확인
.head(n)
--> 시작자료 n개 자료 확인
.tail()
--> 끝나는자료 5개만 볼 수 있음, 총자료수 확인 가능
.tail(n)
--> 끝나는자료 n개 확인
.columns
--> 전체 이름조회(리스트형태로 반환됨+인덱스가 생김)
.colums[n]
--> n번째 위치한 이름 조회(인덱스로 조회가능)
head=n
--> n번째부터 자료읽기
usecols = 'a, b, c, d'
--> 읽어올 컬럼 지정
.index
--> index 자료 확인
.values
--> 밸류값 조회
.info()
--> 기본정보 확인(각 컬럼의 크기와 데이터형태 확인가능)
.describe()
--> 통계적 기본정보(개요)확인
변수명["A"]
--> 특정 컬럼만 읽기
변수명[n:m]
--> 인덱스의 n부터 m-1까지 보여주기
(인덱스이름으로 범위설정 가능(날짜지정도가능)-이떄는 지정범위의 처음과끝까지 보여지기 가능)
.loc[:, ["A", "B"]]
--> :, 모든행의 열 "A","B"컬럼을 선택
.loc["20230606:"20230610", ["A", "B"]]
--> 특정컬럼 선택
.loc["20230606, ["A", "B"]]
--> 특정컬럼 선택
.iloc[n]
--> 구역x 번호로만 접근 n번째행
.iloc[3:5, 0:2]
--> 3~4행, 0~1열
.iloc[[1, 2, 4], [0, 2]]
--> (1, 2, 4)행, (0, 2)열
.iloc[:, 1:3]
--> 전체행, 1~2열
변수명[변수명["A"] > 0]
--> "A"열에서 0보다 큰 자료만 선택
변수명[변수명 > 0]
--> 전체영역에서 0보다 큰 자료만 선택
.read_excel()
--> 엑셀파일열기
.read_csv()
--> csv파일열기
inplace = True
--> 변경내용적용
columns
={원래 컬럼명 : 바꿀컬럼명}
.rename(columns={변수명.columns[n]:"a"})
--> n번째위치 이름 'a'로 변경
.rename(columns={변수명.columns[n]:"a"}, inplace = True)
--> n번째위치 이름 'a'로 변경 변경내용 적용
pandas 언어 사용법 참고 : https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html