pandas 的 map()


  先來幾句麥金尼著作里的話:

For many datasets, you may wish to perform some transformation based on the values in an array, Series, or column in a DataFrame.

The map method on a Series accepts a function or dict-like object containing a mapping.

Using map is a convenient way to perform element-wise transformations and other data cleaning–related operations.

 

使用 map 可以實現 Series 的元素級轉換。

示例如下:

import pandas as pd df = pd.DataFrame([['喬峰', 'I', 95, '降龍十八掌', '乞丐'], ['虛竹', 'II', 93, '天上六陽掌', '和尚'], ['段譽', 'II', 92, '六脈神劍', '王侯'], ['包不同', 'V', 65, '胡攪蠻纏', '仆人'], ['康敏', 'X', 10, '惑夫妒人', '壞女人']], columns=['name', 'grade', 'score', 'skill', 'calss']) df

輸出為:

 

 定義一個 grade 的映射字典,轉換 grade 列的羅馬數字為阿拉伯數字

grade_mapping = {'I': 1, 'II': 2, 'III': 3, 'IV': 4, 'V': 5, 'VI': 6, 'VII': 7, 'VIII': 8, 'IX': 9, 'X': 10} df.grade = df['grade'].map(grade_mapping) df

輸出如下:

 

 定義一個逆映射

inv_grade_mapping = dict((v, k) for k, v in grade_mapping.items()) inv_grade_mapping

輸出如下:

 

 將 df 中的 grade重新轉換過為羅馬數字:

df.grade = df['grade'].map(inv_grade_mapping) df

輸出如下:

 

利用 pandas 的 map 方法就可以實現類似 R語言里 factor 的功能。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM