本文同步發表於小弟自架網站:微確幸資訊站
第一個範例:把大學分類為「公立」與「私立」:
mydict = {'學校名稱': {0: '國立政治大學',
1: '國立臺灣大學',
2: '國立臺北教育大學',
3: '臺北市立大學',
4: '國立臺灣科技大學',
5: '東吳大學',
6: '中國文化大學',
7: '世新大學',
8: '銘傳大學',
9: '實踐大學',
10: '大同大學',
11: '臺北醫學大學'}}
df = pd.DataFrame(mydict)
df
把學校簡單分類為「公立」及「私立」。
import numpy as np
# 第一種寫法
df['學校分類'] = np.where(df['學校名稱'].str.contains('國立|市立'), '公立', '私立')
# 第二種寫法
df['學校分類'] = np.where(df['學校名稱'].str.contains('|'.join(['國立','市立'])), '公立', '私立')
df
第二個範例:把教育程度區分為「高中」及「非高中」
mydict = {'學歷': {0: '國小', 1: '國中', 2: '專科', 3: '高中', 4: '大學'}}
df = pd.DataFrame(mydict)
df
# 第一種寫法
df['教育程度'] = df['學歷'].where(df['學歷'].eq('高中'), '非高中')
# 第二種寫法
target = {'高中':'高中'}
df['教育程度'] = df['學歷'].map(target).fillna('非高中')
df