日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...

發布時間:2025/4/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、為什么學習pandas

  • numpy已經可以幫助我們進行數據的處理了,那么學習pandas的目的是什么呢?
    • numpy能夠幫助我們處理的是數值型的數據,當然在數據分析中除了數值型的數據還有好多其他類型的數據(字符串,時間序列),那么pandas就可以幫我們很好的處理除了數值型的其他數據!

二、什么是pandas?

  • 首先先來認識pandas中的兩個常用的類
    • Series
    • DataFrame

1.Series的創建

  • 由列表或numpy數組創建
  • 由字典創建
#series只能創建一維數組 import numpy as np import pandas as pd from pandas import Series,DataFrame#使用列表創建數組 s=Series(data=[1,2,3,4,5]) s

#numpy數組創建 s1=Series(data=np.random.randint(1,100,size=(2,))) s1

Series(data=[1,2,3],index=['a','b','c'])#index是用來指定顯示索引,顯示索引不會覆蓋隱示索引

1.2.Series的索引和切片

s = Series(data=[1,2,3,4,5],index=['a','b','c','d','e']) s

#索引操作 s = Series(data=[1,2,3,4,5],index=['a','b','c','d','e']) print(s[0])#查找索引為0的元素 print(s['a'])#查找索引為0的元素 print(s.a) print(s[[1,2]])#查找索引為0的元素

#切片 s[0:3] s['a':'c']

1.3.Series的常用屬性

  • shape
  • size
  • index
  • values
print(s.shape) print(s.size) print(s.index) print(s.values)

1.4.Series的常用方法

  • head(),tail()
  • unique()
  • isnull(),notnull()
  • add() sub() mul() div()
s.head(2)#顯示前n個元素 s.tail(2)#后n個元素

s = Series(data=[1,1,2,2,3,4,5]) s.unique()#去重

s.nunique() #返回去重之后元素的個數

s.isnull() #isnull使用來檢測元素是否為空

s.notnull()#用來檢測元素是否為非空

#add()為例 a = pd.Series([1, 1, 1, np.nan], index=['a', 'b', 'c', 'd']) b = pd.Series([1, np.nan, 1, np.nan], index=['a', 'b', 'd', 'e']) a.add(b, fill_value=0) print(a) print(b) print(a.add(b,fill_value=0))

1.5.Series的算術運算

  • 法則:索引一致的元素進行算數運算否則補空
s1 = Series(data=[1,2,3],index=['a','b','c']) s2 = Series(data=[1,2,3],index=['a','d','c']) s = s1+s2 s

s.isnull()

s.notnull()

2.DataFrame

  • DataFrame是一個【表格型】的數據結構。DataFrame由按一定順序排列的多列數據組成。設計初衷是將Series的使用場景從一維拓展到多維。DataFrame既有行索引,也有列索引。
    • 行索引:index
    • 列索引:columns
    • 值:values

2.1DataFrame的創建

    • ndarray創建
    • 字典創建
#ndarray創建 import numpy as np import pandas as pd from pandas import Series,DataFrame df=DataFrame(np.array([[1,2,33],[6,4,8]])) df#或者DataFrame(data=[[1,2,33],[6,4,8]])

#使用元祖創建 dic = {'name':['tom','jay','salay'],'salary':[10000,2000,15000] } DataFrame(dic)

df =DataFrame(data=np.random.randint(0,100,size=(3,2)),index=['a','b','c'],columns=['A','B']) df

2.2DataFrame的屬性

  • values、columns、index、shape
print(df.values) print(df.columns) print(df.index) print(df.shape)

練習1:

根據以下考試成績表,創建一個DataFrame,命名為df:

張三 李四 語文 150 0 數學 150 0 英語 150 0 理綜 300 0

代碼

import numpy as np import pandas as pd from pandas import Series,DataFrame df=DataFrame(data=[[150,0],[150,0],[150,0],[300,0]],columns=['張三','李四'],index=['語文','數學','英語','理綜']) df

2.3DataFrame索引操作(*重點)

  • 對行進行索引
  • 隊列進行索引
  • 對元素進行索引
df = DataFrame(data=np.random.randint(0,100,size=(5,4)),columns=['a','b','c','d'],index=['A','B','C','D','E']) df

#索引取列 df['a']#顯示索引取列 df.iloc[:,0] #隱式索引取列 df.a

#取行 df.iloc[0] #隱式索引取行 df.loc['A'] #顯示索引取行

  • iloc:
    • 通過隱式索引取行
  • loc:
    • 通過顯示索引取行
#取元素 df.loc['B','b'] df.iloc[1,1] df.iloc[[0,1],2]

2.4DataFrame的切片操作

  • 對行進行切片
  • 對列進行切片
#切行 df[0:2]

#切列 df.iloc[:,0:2]

總結:

  • df索引和切片操作
    • 索引:
      • df[col]:取列
      • df.loc[index]:取行
      • df.iloc[index,col]:取元素
    • 切片:
      • df[index1:index3]:切行
      • df.iloc[:,col1:col3]:切列

2.5DataFrame的運算

  • 同Series

練習2:

  • 假設ddd是期中考試成績,ddd2是期末考試成績,請自由創建ddd2,并將其與ddd相加,求期中期末平均值。
  • 假設張三期中考試數學被發現作弊,要記為0分,如何實現?
  • 李四因為舉報張三作弊立功,期中考試所有科目加100分,如何實現?
  • 后來老師發現有一道題出錯了,為了安撫學生情緒,給每位學生每個科目都加10分,如何實現?
  • #先建表,期中ddd和期末ddd2兩張表 import pandas from pandas import Series,DataFrame dic={'張三':[150,150,150,300],'李四':[0,0,0,0],'王五':[120,97,114,130] } df=DataFrame(data=dic,index=['語文','數學','英語','理綜']) ddd=df ddd2=df print(ddd) print(ddd2)

    #1.假設ddd是期中考試成績,ddd2是期末考試成績,請自由創建ddd2,并將其與ddd相加,求期中期末平均值。

    #2.假設張三期中考試數學被發現作弊,要記為0分,如何實現? #先找到ddd中數學-張三成績,然后再賦值為0 ddd.loc['數學','張三']=0 ddd.loc['數學','張三']

    #3.李四因為舉報張三作弊立功,期中考試所有科目加100分,如何實現? #找到ddd表中李四的所有成績(列),然后+100 ddd['李四']+=100 ddd['李四']

    #4.來老師發現有一道題出錯了,為了安撫學生情緒,給每位學生每個科目都加10分,如何實現? ddd+=10 ddd

    總結

    以上是生活随笔為你收集整理的dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。