DataFrame(11):數據轉換——apply(),applymap()函數的使用

2021-02-21 凹凸數據
1、apply()函數1)apply()函數作用① apply()函數作用於Series

和Series的map()方法作用是一樣的,依次取出Series中的每一個元素作為參數,傳遞給function函數,進行一次轉換。

② apply()函數作用於DataFrame

依次取出DataFrame中的每一個元素作為參數,傳遞給function函數,進行轉換。注意:DataFrame中的每一個元素是一個Series。

③ 原始數據連結如下

https://alltodata.cowtransfer.com/s/61ac037949ee4d

2)apply()函數作用於Series① 案例一:1代表男,0代表女,完成如下替換
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx",sheet_name=3)
display(df)

def func(x):
    if x == "男" or x == "女":
        return x
    elif x == 1:
        return "男"
    else:
        return "女"

df["性別"] = df["性別"].apply(func)
display(df)

結果如下:

② 案例二:將身高統一替換為「cm」單位
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx",sheet_name=3)
display(df)

def func(x):
    if x.endswith("cm"):
        return x
    else:
        v = float(x.replace("m",""))
        return str(v*100)+"cm"

df["身高"] = df["身高"].apply(func)
display(df)

結果如下:

③ 案例三:提取日期中的年、月、日
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test1.xlsx")
display(df)

# 注意:這裡的日期列,是時間格式
df["year"] = df["日期"].apply(lambda x:x.year)
df["month"] = df["日期"].apply(lambda x:x.month)
df["day"] = df["日期"].apply(lambda x:x.day)
display(df)

結果如下:

3)apply函數作用於DataFrame① 案例一:求出某些列的均值
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx",sheet_name=2)
display(df)

df1 = df[["語文","物理"]]
display(df1)
display(type(df1))

df[["語文","物理"]].apply(lambda x:x.mean())

結果如下:

② 列印df中列或行的數據類型
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx",sheet_name=2)
display(df)

x = df.apply(lambda x:print(type(x)),axis=0)
print("--")
y = df.apply(lambda x:print(type(x)),axis=1)

結果如下:

2、applymap()函數1)applymap()函數作用① applymap()函數只能作用於DataFrame

依次取出DataFrame中的每一個具體的元素作為參數,傳遞給function函數,進行轉換。

2)案例說明
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx",sheet_name=2)
display(df)

df[['語文', '數學', '英語', '物理', '化學', '生物']].applymap(lambda x:x+100)

結果如下:


相關焦點

  • DataFrame(12):數據轉換——apply(),applymap()函數的使用
    1、apply()函數1)apply()函數作用① apply()函數作用於Series
  • DataFrame(10):數據轉換——map()函數的使用
    ()函數1)map()函數作用將序列中的每一個元素,輸入函數,最後將映射後的每個值返回合併,得到一個迭代器。2)map()函數原理圖原理解釋:上圖有一個列表,元素分別是從1-9。map()函數的作用就是,依次從這個列表中取出每一個元素,然後放到f(x)函數中,最終得到一個通過函數映射後的結果。3)map()內置函數和Series的map()方法① map作為python內置函數的用法
  • 學徒討論-在數據框裡面使用每列的平均值替換NA
    tmp <- data.frame(a=c(1:5,NA,6:9),                  b=c(NA,sample(1:100,9)),                  c=c(sample(1:50,3),NA,sample(1:50,4),NA,NA),                  d=c(sample(1:
  • 01R語言的數據操作02-數據讀取及綜合實例
    >numx1=round(runif(36,min=75,max=100))x1x2=round(rnorm(36,mean=85,sd=5))x2x3=round(rnorm(36,mean=80,sd=25))x3x3[which(x3>100)]=100x3x=data.frame
  • 利用朋友圈消息數據驗證「人們是否在周末更快樂」
    這些數據可以通過爬蟲的方式得到,具體操作請問谷歌~為了以有用的形式訪問這些數據,我們將把它作為dataframe加載。你可以將dataframe視為可以通過編程控制的電子表格(數據的行和列)。在python中,處理dataframe的標準庫是pandas。讓我們使用pandas來加載數據。
  • 使用Pandas讀取複雜的Excel數據
    關於Excel數據處理,很多同學可能使用過Pyhton的pandas模塊,用它可以輕鬆地讀取和轉換Excel數據。但是實際中Excel表格結構可能比較雜亂,數據會分散不同的工作表中,而且在表格中分布很亂,這種情況下啊直接使用pandas就會非常吃力。本文蟲蟲給大家介紹使用pandas和openpyxl讀取這樣的數據的方法。
  • 反覆檢查還是報錯,為什麼你的數據裡面有NA?
    有位朋友跟我說,使用Deseq2的時候,無論如何調整,都會報錯,報錯信息就是,矩陣中負值,及時已經肉眼確定了,沒有負值。讓我們來感受一下這個神奇的時刻。先加載一個數據,這是一個表達矩陣,行是基因,列是樣本名稱。
  • 對比Excel,學習pandas數據透視表
    ;② 依次點擊「插入」—「數據透視表」③ 選擇在Excel中的哪個位置,插入數據透視表)做數據透視表1)語法格式pd.pivot_table(data,index=None,columns=None, values=None,aggfunc='mean', margins=False,margins_name
  • 使用excel函數substitute,len,left等函數來實現時間的替換轉換
    微信7群中有朋友問這樣一個問題:用什麼公式可以將E列的文本轉換到F列的數值時間顯示
  • 怎樣使用Pandas批量拆分與合併Excel文件?
    total_row_count = df_source.shape[0]total_row_count258一、將一個大Excel等份拆成多個Excel使用df.iloc方法,將一個大的dataframe,拆分成多個小dataframe將使用dataframe.to_excel保存每個小Excel1、計算拆分後的每個