>  기사  >  백엔드 개발  >  Pandas의 가장 자세한 튜토리얼

Pandas의 가장 자세한 튜토리얼

coldplay.xixi
coldplay.xixi앞으로
2020-09-18 16:51:566195검색

Pandas의 가장 자세한 튜토리얼

관련 학습 권장 사항: python 튜토리얼

Python은 오픈 소스이므로 훌륭하지만 오픈 소스에 내재된 몇 가지 문제를 피할 수는 없습니다. 많은 패키지가 동일한 작업을 수행(또는 수행하려고)합니다. Python을 처음 사용하는 경우 특정 작업에 어떤 패키지가 가장 적합한지 알기가 어렵습니다. 반드시 갖춰야 할 데이터 과학용 패키지가 하나 있는데, 바로 pandas입니다.

판다의 가장 흥미로운 점은 그 안에 숨겨진 가방이 많다는 것입니다. 다른 패키지의 많은 기능을 포함하는 핵심 패키지입니다. 팬더를 사용하여 작업을 완료할 수 있다는 점에서 이는 매우 좋습니다.

pandas는 Python의 Excel과 동일합니다. 즉, 테이블(즉, 데이터프레임)을 사용하고 데이터에 대해 다양한 변환을 수행할 수 있지만 다른 많은 기능도 있습니다.

이미 Python 사용에 익숙하다면 세 번째 단락으로 바로 이동할 수 있습니다.

시작해 보세요:

import pandas as pd复制代码

왜 "p" 대신 "pd"인지 묻지 마세요. 그게 전부입니다. 그냥 사용해 보세요 :)

pandas의 가장 기본적인 기능

데이터 읽기

data = pd.read_csv( my_file.csv )
data = pd.read_csv( my_file.csv , sep= ; , encoding= latin-1 , nrows=1000, skiprows=[2,5])复制代码

sep은 구분 기호를 나타냅니다. 프랑스어 데이터를 사용하는 경우 Excel의 csv 구분 기호는 ";"이므로 명시적으로 지정해야 합니다. 프랑스어 문자를 읽을 수 있도록 인코딩은 latin-1로 설정됩니다. nrows=1000은 데이터의 처음 1000행을 읽는다는 의미입니다. Skiprows=[2,5]는 파일을 읽을 때 2행과 5행을 제거한다는 의미입니다.

  • 가장 일반적으로 사용되는 함수: read_csv, read_excel

  • 다른 유용한 함수: read_clipboard, read_sql

Write data

data.to_csv( my_new_file.csv , index=None)复制代码

index=None은 데이터가 그대로 기록된다는 의미입니다. index=None을 쓰지 않으면 마지막 행까지 내용 1, 2, 3,...이 포함된 추가 첫 번째 열이 생깁니다.

저는 일반적으로 .to_excel, .to_json, .to_pickle 등과 같은 다른 기능을 사용하지 않습니다. 왜냐하면 .to_csv가 작업을 매우 잘 수행할 수 있고 csv가 테이블을 저장하는 데 가장 일반적으로 사용되는 방법이기 때문입니다.

데이터 확인

Pandas의 가장 자세한 튜토리얼
Gives (#rows, #columns)复制代码

행과 열의 개수를 확인하세요

data.describe()复制代码

기본 통계 계산

데이터 보기

data.head(3)复制代码

데이터의 처음 3개 행을 인쇄하세요. 마찬가지로 .tail()은 데이터의 마지막 행에 해당합니다.

data.loc[8]复制代码

8번째 행을 인쇄하세요

data.loc[8,  column_1 ]复制代码

8번째 행에 "column_1"이라는 열을 인쇄하세요

data.loc[range(4,6)]复制代码

4~6번째 행의 데이터 하위 집합(왼쪽 닫힘, 오른쪽 열림)

pandas의 기본 기능

논리 연산

data[data[ column_1 ]== french ]
data[(data[ column_1 ]== french ) & (data[ year_born ]==1990)]
data[(data[ column_1 ]== french ) & (data[ year_born ]==1990) & ~(data[ city ]== London )]复制代码

논리 연산을 사용하여 데이터 부분 집합을 만듭니다. &(AND), ~(NOT) 및 |(OR)을 사용하려면 논리 연산 앞뒤에 "and"를 추가해야 합니다.

data[data[ column_1 ].isin([ french ,  english ])]复制代码

동일한 열에 여러 OR을 사용하는 것 외에도 .isin() 함수를 사용할 수도 있습니다.

기본 플로팅

matplotlib 패키지가 이를 가능하게 합니다. 소개에서 말했듯이 팬더에서 직접 사용할 수 있습니다.

data[ column_numerical ].plot()复制代码
Pandas의 가장 자세한 튜토리얼

().plot() 출력 예

data[ column_numerical ].hist()复制代码

데이터 분포(히스토그램) 플롯

Pandas의 가장 자세한 튜토리얼

.hist() 출력 예

%matplotlib inline复制代码

Jupyter를 사용하는 경우, 그리기 전에 위의 코드를 추가하는 것을 잊지 마세요.

데이터 업데이트

data.loc[8,  column_1 ] =  english
将第八行名为 column_1 的列替换为「english」复制代码
data.loc[data[ column_1 ]== french ,  column_1 ] =  French复制代码

코드 한 줄로 여러 열의 값 변경

자, 이제 Excel에서 쉽게 액세스할 수 있는 작업을 수행할 수 있습니다. 엑셀에서는 할 수 없는 몇 가지 놀라운 일을 살펴보겠습니다.

중간 함수

발생 횟수 계산

data[ column_1 ].value_counts()复制代码
Pandas의 가장 자세한 튜토리얼

.value_counts() 함수 출력 예시

모든 행, 열 또는 전체 데이터에 대해 동작

data[ column_1 ].map(len)复制代码

len() 함수가 적용됨 On "column_1" 열의 각 요소

.map() 작업은 열의 각 요소에 함수를 적용합니다.

data[ column_1 ].map(len).map(lambda x: x/100).plot()复制代码

pandas의 가장 큰 특징은 체인 방법(tomaugspurger.github.io/ method-chai… 및 .plot)입니다. ()).

data.apply(sum)复制代码

.apply()는 열에 함수를 적용합니다.

.applymap()은 테이블(DataFrame)의 모든 셀에 함수를 적용합니다.

tqdm, 유일한

在处理大规模数据集时,pandas 会花费一些时间来进行.map()、.apply()、.applymap() 等操作。tqdm 是一个可以用来帮助预测这些操作的执行何时完成的包(是的,我说谎了,我之前说我们只会使用到 pandas)。

from tqdm import tqdm_notebook
tqdm_notebook().pandas()复制代码

用 pandas 设置 tqdm

data[ column_1 ].progress_map(lambda x: x.count( e ))复制代码

用 .progress_map() 代替.map()、.apply() 和.applymap() 也是类似的。

Pandas의 가장 자세한 튜토리얼

在 Jupyter 中使用 tqdm 和 pandas 得到的进度条

相关性和散射矩阵

data.corr()
data.corr().applymap(lambda x: int(x*100)/100)复制代码
Pandas의 가장 자세한 튜토리얼

.corr() 会给出相关性矩阵

pd.plotting.scatter_matrix(data, figsize=(12,8))复制代码
Pandas의 가장 자세한 튜토리얼

散点矩阵的例子。它在同一幅图中画出了两列的所有组合。

pandas 中的高级操作

The SQL 关联

在 pandas 中实现关联是非常非常简单的

data.merge(other_data, on=[ column_1 ,  column_2 ,  column_3 ])复制代码

关联三列只需要一行代码

分组

一开始并不是那么简单,你首先需要掌握语法,然后你会发现你一直在使用这个功能。

data.groupby( column_1 )[ column_2 ].apply(sum).reset_index()复制代码

按一个列分组,选择另一个列来执行一个函数。.reset_index() 会将数据重构成一个表。

Pandas의 가장 자세한 튜토리얼

正如前面解释过的,为了优化代码,在一行中将你的函数连接起来。

行迭代

dictionary = {}

for i,row in data.iterrows():
 dictionary[row[ column_1 ]] = row[ column_2 ]复制代码

.iterrows() 使用两个变量一起循环:行索引和行的数据 (上面的 i 和 row)

总而言之,pandas 是 python 成为出色的编程语言的原因之一

我本可以展示更多有趣的 pandas 功能,但是已经写出来的这些足以让人理解为何数据科学家离不开 pandas。总结一下,pandas 有以下优点:

  • 易用,将所有复杂、抽象的计算都隐藏在背后了;

  • 直观;

  • 快速,即使不是最快的也是非常快的。

它有助于数据科学家快速读取和理解数据,提高其工作效率

위 내용은 Pandas의 가장 자세한 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제