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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

dataframe 空值替换为0_dataframe取元素方法总结

發布時間:2025/3/11 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dataframe 空值替换为0_dataframe取元素方法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

dataframe是pandas包的重要對象,熟練掌握dataframe的基本操作是很有必要的。

下面就總結一下dataframe取行列元素的基本操作。

一. DataFrame的基本結構

可以理解為一個矩陣,所有的行名保存在index, 列名保存在columns(注意:一個是單數,一個是復數)。寫程序的時候不僅要調用pandas (import pandas as pd), 還要記得調用numpy這個包:(import numpy as np), pandas不默認包含numpy。

構建一個3×3的dataframe如下:

df = pd.DataFrame(np.arange(9).reshape(3, 3), index = ['row1', 'row2', 'row3'], columns=['col1', 'col2','col3'])

例子里面行名df.index=Index(['row1','row2','row3'],dtype='object')

以及df.columns=Index(['col1','col2','col3'],dtype='object')。(Index對象用來保存標簽數據)。

二. 按索引或行列名選取DataFrame的行和列的方法

1)用列名取一列 (不推薦)

df['col1']即取得第一列,是一個Series對象。

注意:用df['row1'],df[0],df[:,0],df[0,:]統統都會報錯的,這類命令只能用來按列名取一列。(ugly的設計!)

2)按行號取行(不推薦)

df[0:2]代表取得第0行和第1行

注意:只取一行的話,要用df[0:1],不能用df[0]。(ugly的設計!)

3)使用iloc按行號列號來取(推薦)

取一行:df.iloc[0]或df.iloc[0,:]

取多行:df.iloc[[0,2]]或df.iloc[[0,2],:]

取連續多行:df.iloc[0:2]或df.iloc[0:2,:]

取一列:df.iloc[:,0]

取多列:df.iloc[:,[0,2]]或df.iloc[:,[0,2]]

取連續多列:df.iloc[:,0:2]

注意:

  • 取行的時候可以不提列,也可以用",:"來指全列。
  • 取列的時候必須用":,"來指定全行。
  • 可以使用一個數字來代表一個,可以使用一個list [a,b]代表多個,也可以使用a:b代表連續多個。

4)使用loc按行名列名來取(推薦)

取一行:df.loc['row1']或df.loc['row1',:]

取多行:df.loc[['row1','row2']]或df.loc[['row1','row2'],:]

取連續多行:df.loc['row1':'row2']或df.loc['row1':'row2',:]

取一列:df.loc[:,'col1']

取多列:df.loc[:,['row1','row2']]

取連續多列:df.loc[:,'row1':'row2']

注意:

  • 取行的時候可以不提列,也可以用",:"來指全列。
  • 取列的時候必須用":,"來指定全行。
  • 可以使用一個數字來代表一個,可以使用一個list ['a','b']代表多個,也可以使用'a':'b'代表連續多個。

5)使用ix(不推薦)

ix的使用方法和iloc類似,可以既使用數字索引,也可以使用行名列名索引。ix目前已經被棄用,就不贅述了。

6)使用iat和at(不推薦)

iat和at只能去單個元素,iat使用索引,at使用行列名,但是其功能被iloc和loc包含,因此不推薦。

總結下來就是:(重點!!!!)

  • 推薦使用iloc和loc,其他方式均不推薦。
  • 取行可以不提列,取列必須提行。
  • 可以用一個數字,一個list,或者一個區間來取行列。
  • 三. 按條件選取DataFrame的行和列

    選取行的原理就是:

    df.loc[一個由True和False組成的Series]=只包括True對應的行的子矩陣。

    選取列的原理就是:

    df.loc[:,一個由True和False組成的Series] = 只包括False對應的列的子矩陣。

    (注意不可以使用iloc)

    例如:df.loc[df['col1']==3],就是取出第一列,凡是對應數字為3的給True,不為3的給False,然后去所有為True的行。

    df.loc[~(df['col1'!=3)] 同上。

    而本質上如下命令也可以取得同樣的效果:

    df.loc[df.loc[:,'col1']==3,:],

    df.loc[df.iloc[:,0]==3,:]。

    例如:df.loc[:,df.loc['row1']==1] 就是取出第一行,凡是對應數字為1的給True,不為1的給False, 然后取所有為True的列。

    四. 按條件替換Dataframe某一列或行的值

    df.loc[df['col1']==3,'col1']=99, 把第一列中的包含3的元素替換成99。

    df.loc['row1',df.loc['row1',:]==1]=99, 把第一行中的包含1的元素替換成99。

    本質上原理和第二節和第三節加粗部分敘述的原理相同。

    五. 按條件替換整個矩陣某些元素的值

    原理:對于整個df進行判斷,例如df>4代表一個True和False的矩陣。

    然后df[df>4]=100,會把所有True對應的元素替換成100,于是df變成

    總結

    以上是生活随笔為你收集整理的dataframe 空值替换为0_dataframe取元素方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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