DataFrame(10):數據轉換——map()函數的使用

2021-02-21 凹凸數據

1、map()函數1)map()函數作用

將序列中的每一個元素,輸入函數,最後將映射後的每個值返回合併,得到一個迭代器。

2)map()函數原理圖

原理解釋:上圖有一個列表,元素分別是從1-9。map()函數的作用就是,依次從這個列表中取出每一個元素,然後放到f(x)函數中,最終得到一個通過函數映射後的結果。

3)map()內置函數和Series的map()方法① map作為python內置函數的用法

說明:依次取出序列(iterable)中的每一個元素,放到函數(function)中,最終得到一個迭代器,我們可以使用list或者for循環得到其中的元素。

② Series的map()方法

說明:依次取出序列(Series)中的每一個元素,放到函數(function)中,最終得到一個Series結果。

2、map()函數實例

讀取數據

df = pd.read_excel(r"C:\Users\黃偉\Desktop\test1.xlsx")
display(df)

結果如下:

① 將姓名轉換為首字母大寫,其餘字母小寫
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test1.xlsx")
display(df)

df["name"] = df["name"].map(str.capitalize)
display(df)

結果如下:

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

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

結果如下:

③ 求每個人的銷售額:銷售量*單價
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test1.xlsx")
display(df)

df["銷售額"] = list(map(lambda x,y:x*y,df["銷售量"],df["單價"]))
display(df)

結果如下:

④ 合併兩列
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test1.xlsx",sheet_name=1)
display(df)

df["姓名"] = list(map(lambda x,y:x+"_"+y,df["姓"],df["名"]))
display(df)

結果如下:

⑤ 將電話號碼中間4-8位替換為*
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test1.xlsx",sheet_name=1)
display(df)

df["隱藏真實電話"] = df["電話號碼"].astype("str").map(lambda x:x.replace(x[3:8],"*****"))
display(df)

結果如下:


相關焦點

  • DataFrame(11):數據轉換——apply(),applymap()函數的使用
    1、apply()函數1)apply()函數作用① apply()函數作用於Series和Series的map()方法作用是一樣的,依次取出Series中的每一個元素作為參數,傳遞給function函數,進行一次轉換。
  • DataFrame(12):數據轉換——apply(),applymap()函數的使用
    >  和Series的map()方法作用是一樣的,依次取出Series中的每一個元素作為參數,傳遞給function函數,進行一次轉換。② apply()函數作用於DataFrame  依次取出DataFrame中的每一個元素作為參數,傳遞給function函數,進行轉換。注意:DataFrame中的每一個元素是一個Series。③ 原始數據連結如下http://note.youdao.com/noteshare?
  • 學徒討論-在數據框裡面使用每列的平均值替換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:
  • 使用Pandas讀取複雜的Excel數據
    關於Excel數據處理,很多同學可能使用過Pyhton的pandas模塊,用它可以輕鬆地讀取和轉換Excel數據。但是實際中Excel表格結構可能比較雜亂,數據會分散不同的工作表中,而且在表格中分布很亂,這種情況下啊直接使用pandas就會非常吃力。本文蟲蟲給大家介紹使用pandas和openpyxl讀取這樣的數據的方法。
  • 如何將多份數據保存在一個excel中?
    但是問題來了,我要模擬10組參數,每個參數有5個表格,這樣做的話會產生50個表格!這多讓人頭大。較聰明的方法:使用openxlsx包(或者其他類似包),將每一組參數模擬結果放到一個excel中,其中各個表格依次放到單獨的sheet中,這樣最後只會生成10個表格啦。
  • 怎樣使用Pandas批量拆分與合併Excel文件?
    total_row_count = df_source.shape[0]total_row_count258一、將一個大Excel等份拆成多個Excel使用df.iloc方法,將一個大的dataframe,拆分成多個小dataframe將使用dataframe.to_excel保存每個小Excel1、計算拆分後的每個
  • 你有必要知道的函數式編程
    因為一個不純的函數,怎麼跟其他函數合成?怎麼保證各種合成以後,它會達到預期的行為? 前面說過,函數就像數據的管道(pipe)。那麼,函數合成就是將這些管道連了起來,讓數據一口氣從多個管道中穿過。2.2 柯裡化f(x)和g(x)合成為f(g(x)),有一個隱藏的前提,就是f和g都只能接受一個參數。
  • 一系列工作中Excel轉換日期格式的函數,夠用了!
    用Excel來記錄日期後發現格式不對,需要對前面的大量輸入過的日期格式進行修改,如果數據較少,可以手動修改一下,如果數據過多的話,
  • vlookup函數的使用方法(實例版)
    有可能面試時候老闆就直接問你,你會使用vlookup嗎。以此來試探你的辦公的基本能力。所以請大家務必好好學習,因為對你的日常工作提高不是一星半點。廢話少說開始講解。VLOOKUP 的語法結構整個計算機就相當於一門語言,首先我們就是要獲取該函數的語法結構。
  • 利用朋友圈消息數據驗證「人們是否在周末更快樂」
    在這個本次分析中,有如下分析目標:Python數據科學實操,包括dataframes、數據可視化和統計分析Simpson's Paradox, 其中出現在聚合數據中的結果不會出現在細分數據中1 數據加載和預處理我們將首先加載數據,它以csv的形式出現。
  • 使用excel函數substitute,len,left等函數來實現時間的替換轉換
    微信7群中有朋友問這樣一個問題:用什麼公式可以將E列的文本轉換到F列的數值時間顯示
  • 哈希表:map等候多時了
    但是,數組中同一個元素不能使用兩遍。使用哈希法最為合適,之前已經介紹過,數組和set在哈希法中的應用,那麼來看一下使用數組和set來做哈希法的局限。數組的大小是受限制的,而且如果元素很少,而哈希值太大會造成內存空間的浪費。set是一個集合,裡面放的元素只能是一個key,而兩數之和這道題目,不僅要判斷y是否存在而且還要記錄y的下表位置,因為要返回x 和 y的下表。
  • 數據處理過程中常用的excel函數:IF、COUNTIF
    包括如何調用函數以及在函數使用過程當中需要注意的引用問題。今天我們就來介紹幾個常用的excel函數。今天就來介紹一下: IF函數以及countif函數關於excel函數都有固定的輸入形式,我們只需要按照固定的位置輸入想要的東西即可。1.
  • Python Excel 辦公自動化系列——openpyxl/xlswriter庫使用詳解
    > ('data1', 40, 40, 50, 30, 25, 50), ('data2', 30, 25, 30, 10, 5, 10)]# 注意 方法會捨棄缺少數據的列(行)rows = [ ['Number', 'data1', 'data2'], [2, 40      ], # 這裡少一個數據    [3, 40,