pandas中的series數據類型

来源:https://www.cnblogs.com/xshan/archive/2019/01/18/10289588.html
-Advertisement-
Play Games

import pandas as pd import numpy as np import names ''' 寫在前面的話: 1、series與array類型的不同之處為series有索引,而另一個沒有;series中的數據必須是一維的,而array類型不一定 2、可以把series看成一個定長的... ...


import pandas as pd
import numpy as np
import names

'''
寫在前面的話:
    1、series與array類型的不同之處為series有索引,而另一個沒有;series中的數據必須是一維的,而array類型不一定
    2、可以把series看成一個定長的有序字典,可以通過shape,index,values等得到series的屬性
'''
# 1、series的創建
'''
(1)由列表或numpy數組創建
        預設索引為0到N-1的整數型索引,如s1;
        可以通過設置index參數指定索引,如s2;
        通過這種方式創建的series,不是array的副本,即對series操作的同時也改變了原先的array數組,如s3
(2)由字典創建
        字典的鍵名為索引,鍵值為值,如s4;
'''
n1 = np.array([1, 4, 5, 67, 7, 43, ])
s1 = pd.Series(n1)
# print(s1)
'''
0     1
1     4
2     5
3    67
4     7
5    43
dtype: int32
'''
s2 = pd.Series(n1, index=['a', 'b', 'c', 'd', 'e', 'f'])
# print(s2)
'''
a     1
b     4
c     5
d    67
e     7
f    43
dtype: int32
'''
# print(n1)
'''
[ 1  4  5 67  7 43]
'''
s1[2] = 100
s3 = s1
# print(s3)
'''
0      1
1      4
2    100
3     67
4      7
5     43
dtype: int32
'''
# print(n1)
'''
[  1   4 100  67   7  43]
'''
dict1 = {}
for i in range(10, 15):
    # names.get_last_name(),隨機生成英文名字
    dict1[names.get_last_name()] = i
s4 = pd.Series(dict1)
# print(s4)
'''
Poole     10
Allen     11
Davis     12
Roland    13
Brehm     14
dtype: int64
'''
# 2、series的索引
'''
(1)通過index取值,可以通過下標獲取,也可以通過指定索引獲取,如s6,s7
(2)通過.loc[](顯示索引)獲取,這種方式只能獲取顯示出來的索引,無法通過下標獲取,如s7(推薦)
(3)隱式索引,使用整數作為索引值,使用.icol[],如s9(推薦)
'''
s5 = pd.Series(np.array([1, 5, 9, 7, 6, 4, 52, 8]), index=[list('abcdefgh')])
# print(s5)
'''
a     1
b     5
c     9
d     7
e     6
f     4
g    52
h     8
dtype: int32
'''
s6 = s5[2]
# print(s6)
'''
9
'''
s7 = s5['c']
# print(s7)
'''
c    9
dtype: int32
'''
s8 = s5.loc['c']
# print(s8)
'''
c    9
dtype: int32
'''
s9 = s5.iloc[2]
# print(s9)
'''
9
'''
# 3、series的切片
'''
    1、series的切片和列表的用法類似,不同之處在於建議使用.loc[:]和.iloc[:],如s10和s11。當然直接使用[:]也可以。
    2、當遇到特別長的series,我們支取出前5條或後5條數據時可以直接使用.head()或.tail()
'''
s5 = pd.Series(np.array([1, 5, 9, 7, 6, 4, 52, 8]), index=[list('abcdefgh')])
# print(s5)
'''
a     1
b     5
c     9
d     7
e     6
f     4
g    52
h     8
dtype: int32
'''
s10 = s5.loc['b':'g']
# print(s10)
'''
b     5
c     9
d     7
e     6
f     4
g    52
dtype: int32
'''
s11 = s5.iloc[1:7]
# print(s11)
'''
b     5
c     9
d     7
e     6
f     4
g    52
dtype: int32
'''
# 4、關於NaN
'''
    (1)NaN是代表空值, 但不等於None。兩者的數據類型不一樣,None的類型為<class 'NoneType'>,而NaN的類型為<class 'float'>;
    (2)可以使用pd.isnull(),pd.notnull(),或自帶isnull(),notnull()函數檢測缺失數據
'''
# print(type(None),type(np.nan))
'''
<class 'NoneType'> <class 'float'>
'''
s12 = pd.Series([1,2,None,np.nan],index=list('烽火雷電'))
# print(s12)
'''
烽    1.0
火    2.0
雷    NaN
電    NaN
dtype: float64
'''
# print(pd.isnull(s12))
'''
烽    False
火    False
雷     True
電     True
dtype: bool
'''
# print(pd.notnull(s12))
'''
烽     True
火     True
雷    False
電    False
dtype: bool
'''
# print(s12.notnull())
'''
烽     True
火     True
雷    False
電    False
dtype: bool
'''
# print(s12.isnull())
'''
烽    False
火    False
雷     True
電     True
dtype: bool
'''
# 取出series中不為空的值
# print(s12[s12.notnull()])
'''
烽    1.0
火    2.0
dtype: float64
'''
# series的name屬性
'''

'''
s12.name = '風水'
# print(s12)
'''
烽    1.0
火    2.0
雷    NaN
電    NaN
Name: 風水, dtype: float64
'''

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 第一篇:數據倉庫的概述 1.數據倉庫基本概念 數據倉庫是一個面向主題的、集成的、不可更新的、隨時間變化的。 它用於支持企業或組織的決策分析處理。 2.數據分層 ODS(Operatitional data store)層:稱為源數據層,表結構與業務系統的表保持基本一致。通常在ODS層主要做一些欄位的 ...
  • GitHub AES 高級數據加密標準(Advanced Encryption Standard),簡稱AES,由美國政府於1997年開始公開徵集的新的數據加密標準演算法。經過三輪篩選,美國政府最終於2000年10月2日正式宣佈選中密碼學家Joan Daemen和Vincent Rijmen提出的RI ...
  • 最近做面試題,遇到一些問題,整理一下! 1、Overloaded的方法是否可以改變返回值的類型? 答案:可以。 overload是重載,overloaded是什麼?重載的過去式?我還以為是我沒見過的註解,也沒有給限定條件,代碼測試一下。 註釋部分報錯,很明顯,如果吧這個單詞也解釋為重載的話,重載的基 ...
  • operator 是 C++ 的(運算符的)重載操作符。用作擴展運算符的功能。 它和運算符一起使用,表示一個運算符函數,理解時應將 【operator+運算符】 整體上視為一個函數名。 要註意的是:一方面要使運算符的使用方法與其原來一致,另一方面擴展其功能只能通過函數的方式(c++中,“功能”都是由 ...
  • 本系列來自《編寫高質量代碼 改善python程式的91個建議》的讀書筆記整理。python編程規範系列--建議08~18 ...
  • 什麼是策略模式 策略是我們在處理問題是所採用的步驟方法。如我要過年回家,方式有飛機、火車,汽車等,這幾種方式就是策略。 再比如我們商城要搞一個活動,給用戶生成一批優惠券,5折,7折,免單等,這些方法也是策略。 一個策略模式的例子: 模擬一個銷售給客戶報價的業務場景。我們銷售人員對不同的客戶制定不同的 ...
  • 正所謂“授人以魚不如授人以漁”,你們想要的Java學習資料來啦!不管你是學生,還是已經步入職場的同行,希望你們都要珍惜眼前的學習機會,奮鬥沒有終點,知識永不過時。 關註底下的公眾號,獲取百度網盤提取碼即可下載! 1. Java編程思想電子書 鏈接:https://pan.baidu.com/s/1p ...
  • 如何在PHP文件查詢出來的數據賦值給前端頁面展示出來? 例如: PHP文件:agency.php 前端模版:edit_face.htm 或者: 輸出變數:{dede:global.變數名} ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...