본문 바로가기
반응형

Python112

pandas 데이터 결합 함수 merge() pandas 라이브러리 원문을 기반으로 하여 작성하였습니다. pandas는 SQL과 같은 관계형 데이터베이스와 매우 유사한 모든 기능을 갖춘 고성능 인메모리 조인 작업을 제공합니다. 이러한 방법은 다른 오픈 소스 구현(예: R의 base::merge.data.frame) 보다 훨씬 더 나은 성능을 보입니다(어떤 경우에는 10배 이상). 그 이유는 신중한 알고리즘 설계와 DataFrame의 데이터 내부 레이아웃 때문입니다. 데이터 결합에 가장 익숙한 도구인 SQL에 익숙하신 분들은 pandas의 merge 문법이 생소해 보일 수도 있어요. 2개의 도구를 비교해 가며 학습하시면 매우 흥미로울 거라고 생각합니다. pandas는 DataFrame 또는 명명된 Series 객체 간의 모든 표준 데이터베이스 조인 .. 2022. 2. 13.
pandas 데이터 구조 소개(DataFrame) 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. DataFrame은 잠재적으로 다른 유형의 열이 있는 2차원 레이블 데이터 구조입니다. 스프레드시트나 SQL 테이블 또는 Series 개체의 딕셔너리처럼 생각할 수 있습니다. 일반적으로 가장 일반적으로 사용되는 pandas 개체입니다. Series와 마찬가지로 DataFrame은 다양한 종류의 입력을 허용합니다. Dict of 1D ndarrays, lists, dicts, or Series 2-D numpy.ndarray Structured or record ndarray A Series Another DataFrame 데이터와 함께 인덱스(행 레이블) 및 열(열 레이블) 인수를 선택적으로 전달할 수 있습니다. 인덱스 및/.. 2022. 1. 29.
오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: json) with Python 지난 포스팅에서는 R을 활용한 공공데이터 불러오기를 알아보았는데요. 혹시라도 R을 활용한 방법이 궁금하신 분들은 아래 2개의 포스팅 글을 참고하시면 됩니다. 오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: xml) 공공데이터 홈페이지 가입 및 데이터 추출 준비 정부가 개방한 공공데이터를 오픈 API를 활용해서 추출하는 방법에 대해서 설명드릴게요. 우선, 공공데이터 홈페이지에 접속해 볼게요. 공공데이 zzinnam.tistory.com 오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: json) 오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: json)에 이어서 json 형태의 데이터 포맷을 불러오는 R 프로그래밍을 알아보도록 할게요. 공공데이터를 활용하기 위한 준비 단계는 여기를 참 .. 2022. 1. 29.
pandas 데이터 구조 소개(Series) 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 데이터 구조 소개 pandas의 기본 데이터 구조에 대한 개요부터 알아보도록 하겠습니다. 데이터 유형, 인덱싱 및 축 레이블 지정/정렬에 대한 기본 동작은 모든 개체에 적용됩니다. 시작하려면 NumPy와 pandas 라이브러리를 먼저 로드하도록 하겠습니다. import numpy as np import pandas as pd 다음은 반드시 알아야 할 기본 원칙입니다. 데이터 정렬은 본질적입니다. 레이블과 데이터 간의 연결은 사용자가 명시적으로 수행하지 않는 한 끊어지지 않습니다. 데이터 구조에 대해서 간략히 소개하고, 별도의 섹션에서 광범위한 기능 및 메서드 범주를 모두 알아보겠습니다. Series Series는 모든 데이터.. 2021. 10. 15.
Numpy 고급 인덱싱 및 인덱스 트릭 본 포스팅은 Numpy 라이브러리 홈페이지 원문을 기반으로 하여 작성하였습니다. Broadcasting rules Broadcasting을 통해 범용 함수는 정확히 같은 모양이 아닌 입력을 의미 있는 방식으로 처리할 수 있습니다. Broadcasting의 첫 번째 규칙은 모든 입력 배열의 차원 수가 동일하지 않은 경우 모든 배열이 동일한 차원 수를 가질 때까지 더 작은 배열의 모양 앞에 "1"이 반복적으로 추가된다는 것입니다. Broadcasting의 두 번째 규칙은 특정 차원을 따라 크기가 1인 배열이 해당 차원을 따라 가장 큰 모양을 가진 배열의 크기를 가진 것처럼 작동하도록 합니다. 배열 요소의 값은 "Broadcast" 배열의 해당 차원을 따라 동일한 것으로 간주됩니다. Broadcasting 규.. 2021. 10. 4.
Pandas Getting data in/out 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. CSV csv 파일에 쓰기 df.to_csv("foo.csv") csv 파일 읽기 pd.read_csv("foo.csv") Excel 엑셀 파일에 쓰기 df.to_excel("foo.xlsx", sheet_name="Sheet1") 엑셀 파일에서 읽기 pd.read_excel("foo.xlsx", "Sheet1", index_col=None, na_values=["NA"]) 2021. 9. 23.
Pandas Plotting 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. matplotlib API를 참조하기 위해 표준 규칙을 사용합니다. import matplotlib.pyplot as plt plt.close("all") close() 메서드는 Figure 창을 닫는 데 사용됩니다. ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000)) ts = ts.cumsum() ts.plot(); DataFrame에서 plot() 메서드는 레이블이 있는 모든 열을 플롯 하는 데 편리합니다. df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, colum.. 2021. 9. 22.
Pandas Categoricals 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. Pandas는 DataFrame에 범주형 데이터를 포함할 수 있습니다. df = pd.DataFrame( ________{ ___________"id": [1, 2, 3, 4, 5, 6], ___________"raw_grade": ["a", "b", "b", "a", "a", "e"] ________} ) raw_grade의 값들을 범주형 자료 유형으로 변환할 수 있습니다. df["grade"] = df["raw_grade"].astype("category") df["grade"] 범주 이름을 보다 의미 있는 이름으로 변경하는 것이 좋습니다. df["grade"].cat.categories = ["very good", "g.. 2021. 9. 21.
Pandas Time series 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. pandas는 빈도 변환(예: 2차 데이터를 5분 데이터로 변환)을 하는 동안 리샘플링 작업을 수행하기 위한 간단하고 강력하며 효율적인 기능을 가지고 있습니다. 이는 금융 애플리케이션에서 매우 일반적이지만 이에 국한되지 않습니다. rng = pd.date_range("1/1/2012", periods=100, freq="S") rng ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng) ts ts.resample("5Min").sum() 시간대 표현 rng = pd.date_range("3/6/2012 00:00", periods=5, freq="D") rng ts .. 2021. 9. 20.
Pandas Reshaping 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 1. Stack tuples = list( _______________zip( ____________________*[ ["bar", "bar", "baz", "baz", "foo", "foo", "qux", "qux"], _____________________["one", "two", "one", "two", "one", "two", "one", "two"], ] ___________________) ______________) tuples index = pd.MultiIndex.from_tuples(tuples, names=["first", "second"]) index df = pd.DataFrame(np.random... 2021. 9. 19.
Pandas Grouping 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. "group by"는 다음 단계 중 하나 이상을 포함하는 프로세스를 나타냅니다. Splitting: 일부 기준에 따라 데이터를 그룹으로 분할 Applying: 각 그룹에 독립적으로 기능 적용 Combining: 결과를 데이터 구조로 결합 import numpy as np import pandas as pd df = pd.DataFrame( ________{ __________"A": ["foo", "bar", "foo", "bar", "foo", "bar", "foo", "foo"], __________"B": ["one", "one", "two", "three", "two", "two", "one", "three"], __.. 2021. 9. 18.
Pandas Merge 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. pandas는 조인/병합 유형 작업의 경우 인덱스 및 관계 대수 기능에 대한 다양한 종류의 설정 논리를 사용하여 Series 및 DataFrame 개체를 쉽게 결합할 수 있는 다양한 기능을 제공합니다. 1. Concat concat()을 사용하여 pandas 객체 연결 df = pd.DataFrame(np.random.randn(10, 4)) df pieces = [df[:3], df[3:7], df[7:]] pieces pd.concat(pieces) (Note: DataFrame에 열을 추가하는 것은 비교적 빠릅니다. 그러나 행을 추가하려면 복사본이 필요하고 비용이 많이 들 수 있습니다. 반복적으로 레코드를 추가하여 Da.. 2021. 9. 17.
Pandas Operations 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 1. 통계 일반적으로 계산은 missing data를 제외합니다. 기술 통계 수행 df.mean() 다른 축에서 동일한 작업 df.mean(1) 차원이 다르고 정렬이 필요한 개체로 작업합니다. 또한 pandas는 지정된 차원을 따라 자동으로 브로드캐스트 합니다. s = pd.Series([1, 3, 5, np.nan, 6, 8], index=dates).shift(2) s df.sub(s, axis="index") 2. Apply 데이터에 함수 적용 df.apply(np.cumsum) df.apply(lambda x: x.max() - x.min()) 3. Histogramming s = pd.Series(np.random... 2021. 9. 16.
Pandas Missing data 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 2021.09.14 - [Python/Pandas 기초다지기(10분)] - Pandas Selection(변수선택)에서 생성한 데이터를 계속 사용하도록 하겠습니다. pandas는 주로 np.nan 값을 사용하여 missing data를 나타냅니다. np.nan 값은 기본적으로 계산에 포함되지 않습니다. reindex를 사용하면 지정된 축의 인덱스를 변경/추가/삭제할 수 있습니다. 그러면 데이터 복사본이 반환됩니다. df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ["E"]) df1.loc[dates[0] : dates[1], "E"] = 1 df1 누락된 데이터 .. 2021. 9. 15.
Pandas Selection(변수선택) 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 선택 및 설정을 위한 표준 Python/NumPy 표현식은 직관적이고 대화형 작업에 유용하지만 프로덕션 코드의 경우 최적화된 pandas 데이터 액세스 방법(.at, .iat, .loc and .iloc)을 권장합니다. 2021.09.12 - Pandas 객체 생성에서 생성한 예제 데이터 프레임을 계속 사용하도록 하겠습니다. 1. 가져오기 df.A와 동일한 시리즈를 생성하는 단일 열 선택 df["A"] 행을 슬라이싱하는 []를 통해 선택 df[0:3] df["20130102":"20130104"] 2. 라벨에 의한 선택 레이블을 사용하여 횡단면 가져오기 df.loc[dates[0]] 레이블로 여러 축 선택 df.loc[:, .. 2021. 9. 14.
Pandas 데이터 보기(Viewing) 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 2021.09.12 - [Python/Pandas 기초다지기(10분)] - Pandas 객체 생성 포스팅에서 생성한 데이터 프레임을 그대로 활용하겠습니다. 데이터프레임의 상단 및 하단 행 보기 df.head() # df라는 데이터 프레임 상단 행 확인하기 df.tail(3) # df라는 데이터 프레임 하단 행 3줄 확인하기 인덱스 및 열 표시 방법 df.index # df라는 데이터 프레임에 index 확인하기 df.columns # df라는 데이터프레임의 열 확인하기 데이터 프레임을 배열로 전환 DataFrame.to_numpy()는 데이터 프레임 형태의 데이터를 NumPy 표현으로 제공합니다. DataFrame에 다른 데.. 2021. 9. 13.
Pandas 객체 생성 본 포스팅은 Pandas 패키지 홈페이지의 원문을 기반으로 하여 작성하였습니다. 값 목록을 전달하여 시리즈 데이터 생성 및 Pandas의 기본 정수 인덱스 생성 import numpy as np import pandas as pd s = pd.Series([1, 3, 5, np.nan, 6, 8]) s 날짜/시간 인덱스와 라벨이 지정된 열이 있는 NumPy 배열을 전달하여 DataFrame 만들기 dates = pd.date_range("20130101", periods=6) dates df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD")) df 시리즈로 변환할 수 있는 개체의 dictionary를 전달하여 DataFrame.. 2021. 9. 12.
NumPy 복사 및 조회 본 포스팅은 NumPy 패키지 홈페이지의 원문을 기반으로 하여 작성하였습니다. 배열을 조작하고 다룰 때 데이터가 새 배열로 복사되는 경우가 있고 그렇지 않은 경우가 있습니다. 이것은 종종 초보자에게 혼란을 주는 주요 원인입니다. 세 가지 경우가 있습니다. 1. No Copy at All 단순 할당은 개체 또는 해당 데이터의 복사본을 만들지 않습니다. >>> import numpy as np >>> a = np.array([[ 0, 1, 2, 3], ____________________[ 4, 5, 6, 7], ____________________[ 8, 9, 10, 11]]) >>> b = a # 새로운 객체가 생성되지 않음 >>> b is a # a 및 b는 동일한 ndarray 객체에 대한 두 개의 .. 2021. 9. 11.
NumPy 배열 모양 변경 본 포스팅은 NumPy 패키지 홈페이지의 원문을 기반으로 하여 작성하였습니다. 배열의 모양 변경 배열은 각 축을 따라 요소의 수로 지정된 모양을 갖습니다. >>> rg = np.random.default_rng(1) >>> a = np.floor(10 * rg.random((3, 4))) >>> a array([[3., 7., 3., 4.], _______[1., 4., 2., 2.], _______[7., 2., 4., 9.]]) >>> a.shape (3, 4) 배열의 모양은 다양한 명령으로 변경할 수 있습니다. 다음 세 가지 명령은 모두 수정된 배열을 반환하지만 원래 배열은 변경하지 않습니다. >>> a.ravel() # 평면화된 배열 반환 array([3., 7., 3., 4., 1., 4., 2.. 2021. 9. 10.
NumPy 인덱싱, 슬라이싱, 반복 본 포스팅은 NumPy 패키지 홈페이지의 원문을 기반으로 작성하였습니다. 1차원 배열은 목록 및 기타 Python 시퀀스와 마찬가지로 인덱싱, 슬라이스 및 반복을 처리할 수 있습니다. >>> a = np.arange(10)**3 >>> a array([ 0, 1, 8, 27, 64, 125, 216, 343, 512, 729]) >>> a[2] 8 >>> a[2:5] array([ 8, 27, 64]) >>> # a[0:6:2] = 1000 와 동일 >>> # 시작부터 위치 6까지, 배타적, 모든 두 번째 요소를 1000으로 설정 >>> a[:6:2] = 1000 >>> a array([1000, 1, 1000, 27, 1000, 125, 216, 343, 512, 729]) >>> a[::-1] # r.. 2021. 9. 9.
NumPy 기본 옵션 및 함수 본 포스팅은 NumPy 패키지 홈페이지의 원문을 기반으로 작성하였습니다. 배열의 산술 연산자는 요소별로 적용됩니다. 새 배열이 생성되고 결과로 채워집니다. >>> a = np.array([20, 30, 40, 50]) >>> b = np.arange(4) >>> b array([0, 1, 2, 3]) >>> c = a - b >>> c array([20, 29, 38, 47]) >>> b**2 array([0, 1, 4, 9]) >>> 10 * np.sin(a) array([ 9.12945251, -9.88031624, 7.4511316 , -2.62374854]) >>> a < 35 array([ True, True, False, False ]) 많은 행렬 언어와 달리 곱 연산자 *는 NumPy 배열에.. 2021. 9. 8.
NumPy 활용 기초 코드 작성 본 포스팅은 NumPy 패키지 홈페이지의 원문을 기반으로 하여 작성하였습니다. Example >>> import numpy as np >>> a = np.arange(15).reshape(3, 5) >>> a array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) >>> a.shape (3, 5) >>> a.ndim 2 >>> a.dtype.name 'int64' >>> a.itemsize 8 >>> a.size 15 >>> type(a) >>> b = np.array([6, 7, 8]) >>> b array([6, 7, 8]) >>> type(b) Array 생성 배열을 만드는 방법에는 여러 가지가 있습니다. 예를 들어, 배열 함수를 사용하.. 2021. 9. 7.
NumPy 기초 본 포스팅은 NumPy 패키지 홈페이지 원문을 기반으로 작성하였습니다. 전제조건 Python에 대해서 조금의 배경지식이 필요합니다. 최소한 제 포스트의 Python 사전 준비 및 Python 완전기초 카테고리에 있는 내용을 먼저 숙지하시기를 바랍니다. 또한, 예제를 실행하려면 NumPy와 함께 matplotlib 라이브러리가 설치되어 있어야 합니다. 학습자 프로필 이것은 NumPy의 배열에 대한 간략한 개요입니다. n차원() 배열이 어떻게 표현되고 조작될 수 있는지 보여줍니다. 특히 for 루프를 사용하지 않고 n차원 배열에 일반적인 함수를 적용하는 방법을 모르거나 n차원 배열의 축 및 모양 속성을 이해하려는 경우 이번 포스팅의 글이 도움이 될 수 있습니다. 학습 목표 NumPy에서 1차원, 2차원 및 .. 2021. 9. 6.
Python 리스트와 NumPy 배열의 차이점 본 포스팅은 NumPy 패키지 홈페이지의 원본 내용을 기반으로 작성하였습니다. NumPy는 배열을 생성하고 배열 내부의 숫자 데이터를 조작하는 빠르고 효율적인 방법을 광범위하게 제공합니다. Python 목록은 단일 목록 내에 다양한 데이터 유형을 포함할 수 있지만 NumPy 배열의 모든 요소는 동일 유형이어야 합니다. 배열에 대해 수행되는 수학 연산은 배열이 동질적이지 않은 경우 극도로 비효율적입니다. 왜 NumPy를 사용할까요? NumPy 배열은 Python 리스트보다 빠르고 콤팩트합니다. 배열은 메모리를 덜 소모하고 사용하기 편리합니다. NumPy는 데이터를 저장하는 데 훨씬 적은 메모리를 사용하며 데이터 유형을 지정하는 메커니즘을 제공합니다. 이를 통해 코드를 더욱 최적화할 수 있습니다. 배열(Ar.. 2021. 9. 5.
NumPy 개요 및 패키지 설치하기 본 포스팅은 NumPy 패키지 홈페이지의 원본 내용을 기반으로 작성하였습니다. NumPy 개요 NumPy(Numerical Python)는 거의 모든 과학 및 공학 분야에서 사용되는 오픈 소스 Python 라이브러리입니다. 이는 Python에서 수치 데이터 작업을 위한 보편적인 표준이며 과학적인 Python 및 PyData 생태계의 핵심입니다. NumPy 사용자는 초보 코더부터 최첨단 과학 및 산업 연구 및 개발을 수행하는 숙련된 연구원에 이르기까지 모든 사람들을 포함합니다. NumPy API는 Pandas, SciPy, Matplotlib, scikit-learn, scikit-image 및 대부분의 기타 데이터 과학 및 과학 Python 패키지에서 광범위하게 사용됩니다. NumPy 라이브러리에는 다차.. 2021. 9. 4.
Python VS SQL 많은 pandas 패키지를 이용하는 개발자들은 SQL에 어느 정도 익숙하므로 이번 포스팅에서는 pandas를 사용하여 다양한 SQL 작업을 수행하는 방법에 대한 몇 가지 예를 비교해서 설명하겠습니다. 본 포스팅은 pandas 홈페이지를 기반으로 하여 작성하였습니다. 관례적으로 다음과 같이 pandas와 NumPy를 가져옵니다. import numpy as np import pandas as pd 대부분의 예제는 pandas 테스트에서 찾은 tips 데이터 세트를 활용합니다. tip이라는 DataFrame으로 데이터를 읽고 동일한 이름과 구조의 데이터베이스 테이블이 있다고 가정합니다. 아래 데이터를 다운로드하세요. tips = pd.read_csv("D:/python_exer/tips.csv") tips .. 2021. 9. 2.
파이썬 vs R (R libraries) 본 포스팅은 pandas 공식 홈페이지를 기반으로 작성하였습니다. data.frame pandas는 R을 사용하는 많은 데이터 조작 및 분석 기능을 제공하는 것을 목표로 하기 때문에, 본 포스팅에서는 pandas와 관련된 R 언어 및 R 언어의 많은 라이브러리에 대한 자세한 내용을 비교하여 설명하려고 합니다. R 및 CRAN 라이브러리와 주요 비교는 아래와 같습니다. 기능 및 유연성 : 각 Tool로 할 수 있는 것과 할 수 없는 것 성능 : 작업이 얼마나 빠른지. 어려운 숫자 및 벤치마크가 바람직합니다. 사용의 용이성 : 판단이 쉽도록 코드를 비교표 형식으로 제공 이 페이지는 또한 이러한 R 패키지 사용자를 위한 약간의 설명을 제공합니다. pandas에서 R로 DataFrame 개체를 전송하는 경우 한.. 2021. 8. 22.
Pandas 텍스트 데이터 다루기 본 내용을 보기 전에 Python 사전 준비 및 Python 완전 기초를 먼저 이해하셔야 합니다. 본 포스팅은 pandas 공식 홈페이지를 기반으로 작성하였습니다. 이번 포스팅에서는 titanic 승객 데이터를 활용하겠습니다. import pandas as pd titanic = pd.read_csv("D:/python_exer/titanic.csv") titanic.head() 1. 텍스트 데이터 다루기 1.1. 모든 이름 문자를 소문자로 변경하기 titanic["Name"].str.lower() 이름 열의 각 문자열을 소문자로 만들려면 이름 열을 선택하고, str 접근자를 추가하여 lower 메서드를 적용합니다. 따라서 각 문자열은 요소별로 변환됩니다. str 접근자를 사용할 때 여러 특수 문자열 메.. 2021. 8. 21.
Pandas 시계열 데이터 다루기 본 내용을 보기 전에 Python 사전 준비 및 Python 완전 기초를 먼저 이해하셔야 합니다. 본 포스팅은 pandas 공식 홈페이지를 기반으로 작성하였습니다. 이번 포스팅에서 사용할 실습 데이터는 Air quality data입니다. 아래 데이터를 활용하시면 됩니다. (air_quality_no2_long.csv: NO2 및 2.5 마이크로미터 미만의 미립자 물질에 ​​대한 대기 품질 데이터로, openaq에서 제공하고 py-openaq 패키지를 사용하여 다운로드합니다. 파리, 앤트워프 및 런던에 있는 측정 스테이션 FR04014, BETR801 및 런던 웨스트민스터에 대한 NO2 값을 제공합니다.) import pandas as pd import matplotlib.pyplot as plt air.. 2021. 8. 20.
Pandas 활용 테이블 결합 방법 본 내용을 보기 전에 Python 사전 준비 및 Python 완전 기초를 먼저 이해하셔야 합니다. 본 포스팅은 pandas 공식 홈페이지를 기반으로 작성하였습니다. 본 포스팅의 실습을 위해 사용할 2개의 데이터 세트는 아래와 같습니다. (NO2에 대한 대기질 데이터로, openaq에서 제공하고 py-openaq 패키지를 사용하여 다운로드 가능. air_quality_no2_long.csv 데이터 세트는 각각 파리, 앤트워프 및 런던에 있는 측정 스테이션 FR04014, BETR801 및 런던 웨스트민스터에 대한 NO2 값 제공) import pandas as pd air_quality_no2 = pd.read_csv("D:/python_exer/air_quality_no2_long.csv", parse_.. 2021. 8. 19.
반응형