今天遇到一個問題,小記錄一下處理過程,現在要將一個pandas變量的某個字段進行轉換。
之前學的是用applymap對所有字段進行批量處理,然後搜索了一些資料後,做了如下總結,使用apply方法只改某個需要的字段。
# 定義處理方法,至少要有一個入參,然後有返回內容
# 此處示例是通過判斷一個字符串裏面是否含有某個字,然後轉換爲1或0
def processMethod(d:str)->int:
# print(d)
if d.find('something')>0:
return 1
else:
return 0
# 此處示例的變量爲一個<class 'pandas.core.frame.DataFrame'>
# 只想處理其中一列時,使用variable['paramName']來指定需要處理的列
# 只處理某列時可以用apply方法,然後傳入一個lambda,裏面用x['paramName']再指定要傳入的參數
# 必須加axis=1,否則會報錯,把rooms變量的第一個字段,而不是指定的字段給傳進去
# axis=1,表示每次取一行數據進行處理,按行處理
rooms['direction']=rooms.apply(lambda x:processMethod(x['direction']),axis=1)