請看下面的實體。
list1 = [['張三',80,'男'],['李四',70,'女'], ['王五', 40, '女']]
df1 = pd.DataFrame(list1, columns = ['姓名','分數','性別'])
df1
姓名 分數 性別
0 張三 80 男
1 李四 70 女
2 王五 40 女
list2 = [[80,'優秀'],[70,'良好'], [60,'合格'], [50,'差'], [40, '差']]
df2 = pd.DataFrame(list2, columns = ['成績','評價'])
df2
成績 評價
0 80 優秀
1 70 良好
2 60 合格
3 50 差
4 40 差
df1['評價'] = df1.apply(lambda x: df2[df2['成績'] == x['分數']]['評價'].values, axis = 1)
df1
姓名 分數 性別 評價
0 張三 80 男 [優秀]
1 李四 70 女 [良好]
2 王五 40 女 [差]
問題:一直有個問題困擾我,上面這個例子是,我想在df1串列中添加“評價”列。
我通過apply和lambda函式從df2中獲取。但是添加進去的資料都帶有“[ ]",”[優秀] [良好] [差]“
請問如何方法不變,還是用apply和lambda,如何能只要值,不要方括號。
uj5u.com熱心網友回復:
df1['評價'] = df1.apply(lambda x: df2[df2['成績'] == x['分數']]['評價'].values[0], axis = 1)
uj5u.com熱心網友回復:
.values[0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/19756.html
上一篇:關于Session
