成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

pandas數(shù)據(jù)分析常用函數(shù)有哪些-創(chuàng)新互聯(lián)

小編給大家分享一下pandas數(shù)據(jù)分析常用函數(shù)有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)網(wǎng)站建設服務商,為中小企業(yè)提供網(wǎng)站設計制作、網(wǎng)站建設服務,網(wǎng)站設計,網(wǎng)站托管維護等一站式綜合服務型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競爭對手中脫穎而出成都創(chuàng)新互聯(lián)

1. 導入模塊

import pandas as pd      # 這里用到的是pandas和numpy兩個模塊
import numpy as np

2. 創(chuàng)建數(shù)據(jù)集并讀取

2.1 創(chuàng)建數(shù)據(jù)集

我構造了一個超市購物的數(shù)據(jù)集,該數(shù)據(jù)集屬性包括:訂單ID號(id)、訂單日期(date)、消費金額(money)、訂單商品(product)、商品類別(department)、商品產(chǎn)地(origin)。

# 列表和字典均可傳入DataFrame,我這里用的是字典傳入:
data=pd.DataFrame({
   "id":np.arange(101,111),                                # np.arange會自動輸出范圍內的數(shù)據(jù),這里會輸出101~110的id號。
   "date":pd.date_range(start="20200310",periods=10),      # 輸出日期數(shù)據(jù),設置周期為10,注意這里的周期數(shù)應該與數(shù)據(jù)條數(shù)相等。
   "money":[5,4,65,-10,15,20,35,16,6,20],                  # 設置一個-10的坑,下面會填(好慘,自己給自己挖坑,幸虧不準備跳~)
   "product":['蘇打水','可樂','牛肉干','老干媽','菠蘿','冰激凌','洗面奶','洋蔥','牙膏','薯片'],
   "department":['飲料','飲料','零食','調味品','水果',np.nan,'日用品','蔬菜','日用品','零食'],                # 再設置一個空值的坑
   "origin":['China',' China','America','China','Thailand','China','america','China','China','Japan']     # 再再設置一個america的坑
})
data              # 輸出查看數(shù)據(jù)集

輸出結果:

pandas數(shù)據(jù)分析常用函數(shù)有哪些

2.2 數(shù)據(jù)寫入和讀取

data.to_csv("shopping.csv",index=False)       # index=False表示不加索引,否則會多一行索引
data=pd.read_csv("shopping.csv")

3. 數(shù)據(jù)查看

3.1 數(shù)據(jù)集基礎信息查詢

data.shape            # 行數(shù)列數(shù)
data.dtypes           # 所有列的數(shù)據(jù)類型
data['id'].dtype      # 某一列的數(shù)據(jù)類型
data.ndim             # 數(shù)據(jù)維度
data.index            # 行索引
data.columns          # 列索引
data.values           # 對象值

3.2 數(shù)據(jù)集整體情況查詢

data.head()    # 顯示頭部幾行(默認5行)
data.tail()    # 顯示末尾幾行(默認5行)
data.info()    # 數(shù)據(jù)集相關信息概覽:索引情況、列數(shù)據(jù)類型、非空值、內存使用情況
data.describe()    # 快速綜合統(tǒng)計結果

4. 數(shù)據(jù)清洗

4.1 查看異常值

當然,現(xiàn)在這個數(shù)據(jù)集很小,可以直觀地發(fā)現(xiàn)異常值,但是在數(shù)據(jù)集很大的時候,我用下面這種方式查看數(shù)據(jù)集中是否存在異常值,如果有其他更好的方法,歡迎傳授給我。

for i in data:
   print(i+": "+str(data[i].unique()))      # 查看某一列的唯一值

輸出結果:我們發(fā)現(xiàn),該數(shù)據(jù)集中money存在一個負值,department存在一個空值以及origin存在大小寫問題。

pandas數(shù)據(jù)分析常用函數(shù)有哪些

4.2 空值處理

4.2.1 空值檢測

data.isnull()# 查看整個數(shù)據(jù)集的空值data['department'].isnull()# 查看某一列的空值

data.isnull()                # 查看整個數(shù)據(jù)集的空值
data['department'].isnull()  # 查看某一列的空值

輸出結果:

pandas數(shù)據(jù)分析常用函數(shù)有哪些

將空值判斷進行匯總,更加直觀,ascending默認為True,升序。

data.isnull().sum().sort_values(ascending=False)

輸出結果:

pandas數(shù)據(jù)分析常用函數(shù)有哪些

4.2.2 空值處理

pandas.DataFrame.fillna(value = None,method = None,inplace = False)
  • value:用于填充的值,可以是具體值、字典和數(shù)組,不能是列表;

  • method:填充方法,有 ffill 和 bfill 等;

  • inplace默認無False,如果為True,則將修改此對象上的所有其他視圖。

data['department'].fillna(method="ffill")    # 填充上一個值,即填充“水果”

輸出結果:

pandas數(shù)據(jù)分析常用函數(shù)有哪些

data['department'].fillna(method="bfill")    # 填充下一個值,即填充“日用品”
data['department'].fillna(value="冷凍食品",inplace=True)    # 替換為具體值,并且在原對象值上進行修改

輸出結果:

pandas數(shù)據(jù)分析常用函數(shù)有哪些

4.3 空格處理

只針對object類型數(shù)據(jù)

for i in data:                                    # 遍歷數(shù)據(jù)集中的每一列
   if pd.api.types.is_object_dtype(data[i]):     # 如果是object類型的數(shù)據(jù),則執(zhí)行下方代碼
       data[i]=data[i].str.strip()               # 去除空格
data['origin'].unique()                           # 驗證一下

輸出結果:array([‘China’, ‘America’, ‘Thailand’, ‘a(chǎn)merica’, ‘Japan’], dtype=object)

4.4 大小寫轉換

data['origin'].str.title()         # 將首字母大寫
data['origin'].str.capitalize()    # 將首字母大寫
data['origin'].str.upper()         # 全部大寫
data['origin'].str.lower()         # 全部小寫

4.5 數(shù)據(jù)替換

data['origin'].replace("america","America",inplace=True)    # 將第一個值替換為第二個值,inplace默認為False
data['origin']

輸出結果:

pandas數(shù)據(jù)分析常用函數(shù)有哪些

data['money'].replace(-10,np.nan,inplace=True)                    # 將負值替換為空值
data['money'].replace(np.nan,data['money'].mean(),inplace=True)   # 將空值替換為均值
data['money']

輸出結果:

pandas數(shù)據(jù)分析常用函數(shù)有哪些

4.6 數(shù)據(jù)刪除

方法一

data1 = data[data.origin != 'American'] #去掉origin為American的行
data1
data2=data[(data != 'Japan').all(1)]    #去掉所有包含Japan的行    不等于Japan的行為真,則返回
data2

方法二

data['origin'].drop_duplicates()      # 默認刪除后面出現(xiàn)的重復值,即保留第一次出現(xiàn)的重復值

輸出結果:

pandas數(shù)據(jù)分析常用函數(shù)有哪些

data['origin'].drop_duplicates(keep='last')   # 刪除前面出現(xiàn)的重復值,即保留最后一次出現(xiàn)的重復值

輸出結果:

pandas數(shù)據(jù)分析常用函數(shù)有哪些

更多關于pandas.DataFrame.drop_duplicates的用法,戳下面官方鏈接:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop_duplicates.html#pandas.DataFrame.drop_duplicates

4.7 數(shù)據(jù)格式轉換

data['id'].astype('str')    # 將id列的類型轉換為字符串類型。

常見的數(shù)據(jù)類型對照

pandas數(shù)據(jù)分析常用函數(shù)有哪些

4.8 更改列名稱

data.rename(columns={'id':'ID', 'origin':'產(chǎn)地'})     # 將id列改為ID,將origin改為產(chǎn)地。

輸出結果:

pandas數(shù)據(jù)分析常用函數(shù)有哪些

以上是“pandas數(shù)據(jù)分析常用函數(shù)有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道!

當前名稱:pandas數(shù)據(jù)分析常用函數(shù)有哪些-創(chuàng)新互聯(lián)
當前地址:http://jinyejixie.com/article20/djsdjo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、電子商務、App開發(fā)、標簽優(yōu)化、網(wǎng)站排名、網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
连山| 泰兴市| 温泉县| 肃北| 南江县| 青海省| 抚宁县| 邯郸县| 乌审旗| 泸西县| 陆川县| 长宁区| 辽宁省| 巴楚县| 德安县| 洱源县| 永嘉县| 山阴县| 曲靖市| 偏关县| 封开县| 乌兰县| 神池县| 拜泉县| 上蔡县| 定西市| SHOW| 五莲县| 宣威市| 邯郸市| 涿州市| 高阳县| 乌拉特中旗| 岑巩县| 锦屏县| 昆明市| 安陆市| 富顺县| 滨州市| 张北县| 香格里拉县|