乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      R語言與python對(duì)數(shù)據(jù)框的操作(對(duì)比筆記)

       育種數(shù)據(jù)分析 2021-11-18

      這篇主要比較R語言的data.talbe和python的pandas操作數(shù)據(jù)框的形式, 學(xué)習(xí)兩者的異同點(diǎn), 加深理解兩者的使用方法。

      1. data.table VS pandas

      這里使用R語言的data.tablet包和python的pandas進(jìn)行對(duì)比.

      主要分為三部分:

        1. 新建數(shù)據(jù)庫

        1. 行列選擇

        1. 行列篩選

      2. data.table操作數(shù)據(jù)框

      data.table介紹:

      使用R語言, 通過data.table創(chuàng)建數(shù)據(jù)框.

      library(data.table)
      set.seed(123)
      DT <- data.table(V1=c(1,2),V2=c("A","B","C"),V3=round(rnorm(4),4), V4=1:12)

      2.1 行選擇

      選擇單行

      # 行選擇

      DT[2]

      DT[2,] # 同上

      選擇多行

      DT[3:5]

      DT[3:5,]

      選擇列

      DT[,2]


      可以使用.()號(hào), 返回?cái)?shù)據(jù)框

      DT[,.(V2)] # 同上


      或者使用list(), 等同于.()

      DT[,list(V2)]

      2.2 行列篩選

      選擇V2等于A的列

      DT[V2=="A"]


      也可以使用下面這種形式

      DT[V2=="A",]

      如果選擇V2等于A或者等于B的列

      DT[V2 == "A"|V2=="B"]


      也可以使用%in%進(jìn)行多條件選擇

      DT[V2 %in% c("A","B")]

      新建一列V5

      DT[,V5:=V3*V4]

      DT

      2.3 使用fwrite保存數(shù)據(jù)

      fwrite(DT,"DT.csv")

      3. pandas操作數(shù)據(jù)框

      讀取數(shù)據(jù)

      import pandas as pd
      df = pd.read_csv("DT.csv")
      df

      3.1 行列選擇


      選擇第一行, 需要給出區(qū)間, df[0]報(bào)錯(cuò), 要用df[0:1]

      df[0:1] # 如果直接使用, 需要給出區(qū)間


      也可以根據(jù)loc進(jìn)行提取

      # loc 根據(jù)行名
      df.loc[1] # 注意, python從0開始

      也可以根據(jù)iloc進(jìn)行提取

      # iloc 根據(jù)行號(hào)
      df.iloc[1]

      注意, iloc是根據(jù)行號(hào), loc是根據(jù)行名

      選擇多行

      df[3:6] # 3包括, 6不包括

      同上:

      df.loc[3:5]

      3.2 pandas選擇列

      df["V2"]

      也可以使用列數(shù), 使用iloc

      df.iloc[:,1:2]

      如果使用多個(gè)列名, 要用[]

      df[["V1","V2"]] # 用兩個(gè)[][]


      效果同上。

      df.iloc[:,0:2]

      3.3 pandas行列篩選

      df[df['V2']=="A"]

      或者:

      df[df['V2']=="A"]

      多條件篩選

      # 麻煩style: (df['V2']=='A')|(df['V2']=='B')
      df[(df['V2']=='A')|(df['V2']=='B')]

      也可以使用isin進(jìn)行操作:

      # 使用.V2.isin()進(jìn)行多條件篩選
      df[df.V2.isin(["A","B"])]
      # 使用[].isin也可以
      df[df['V2'].isin(["A","B"])]

      創(chuàng)建新列V5

      df.V5 = df.V3*df.V4
      df

      3.4 pandas保存文件

      如果是R的思維:

      write.csv(object, "file.csv")

      但是pandas的風(fēng)格是

      object.to_csv("file.csv")

      正確有效的代碼:

      df.to_csv("df.csv",index=0) # 對(duì)象.to_csv, 不是pd.write(df,"df.csv")!!!

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多