這篇主要比較R語(yǔ)言的data.talbe和python的pandas操作數(shù)據(jù)框的形式, 學(xué)習(xí)兩者的異同點(diǎn), 加深理解兩者的使用方法。 1. data.table VS pandas這里使用R語(yǔ)言的 主要分為三部分:
2. data.table操作數(shù)據(jù)框data.table介紹: library(data.table) 2.1 行選擇選擇單行 # 行選擇 選擇多行 DT[3:5] 選擇列 DT[,2]
DT[,.(V2)] # 同上
DT[,list(V2)] 2.2 行列篩選選擇V2等于A的列 DT[V2=="A"]
DT[V2=="A",] 如果選擇V2等于A或者等于B的列 DT[V2 == "A"|V2=="B"]
DT[V2 %in% c("A","B")] 新建一列V5 DT[,V5:=V3*V4] 2.3 使用fwrite保存數(shù)據(jù)fwrite(DT,"DT.csv") 3. pandas操作數(shù)據(jù)框讀取數(shù)據(jù) import pandas as pd 3.1 行列選擇
df[0:1] # 如果直接使用, 需要給出區(qū)間
# loc 根據(jù)行名 也可以根據(jù)iloc進(jìn)行提取 # iloc 根據(jù)行號(hào) 注意, 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') 也可以使用isin進(jìn)行操作: # 使用.V2.isin()進(jìn)行多條件篩選 # 使用[].isin也可以 創(chuàng)建新列V5 df.V5 = df.V3*df.V4 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")!!!
|
|
來(lái)自: 育種數(shù)據(jù)分析 > 《待分類(lèi)》