gpt4 book ai didi

python - 如何使用 pandas 将调查答案映射到选项号?

转载 作者:行者123 更新时间:2023-12-01 00:24:48 24 4
gpt4 key购买 nike

我有一个数据框和系列,如下所示

user_response = pd.DataFrame({
'val_string': ['Correct','Mute','Test13','Test15','Unverified',np.nan,'>10 Edu'],
'num':[np.nan,np.nan,1201,1203,np.nan,np.nan,np.nan]
})

option_numbers = pd.DataFrame({
'answer':['Correct','Incorrect','mute','cannot see','paralysed','illiterate','tired','cannot hear','NIL',
'English','Malay','Mandarin','Hokkien','Teochew','Cantonese','Other - specify','Chinese',
'0 Edu','1-6 Edu','7-10 Edu','>10 Edu','Unreachable','Incomplete','Unverified','Complete'],
'option':[1,0,0,1,2,3,4,5,6,1,2,3,4,5,6,7,8,1,2,3,4,5,0,1,2]})
option_number = option_number.set_index('answer')['option']

虽然我能够根据下面的代码成功映射匹配项目,但我丢失了不匹配项目的现有值

user_response['num'] = user_response['val_string'].map(option_numbers)

如果您运行我的代码,您会发现它丢失了 Test13Test15 的值,因为它不存在于 option_numbers 系列中> 由于区分大小写问题,Mutemute 不匹配

你能帮我解决这个问题吗?

我希望我的输出如下所示

enter image description here

最佳答案

首先,您需要数据框中的两列均为小写或大写

user_response['val_string'] = user_response['val_string'].str.lower()
option_numbers['answer'] = option_numbers['answer'].str.lower()

然后只需使用 fillna 填充缺失值,您必须将两个数据帧中的索引设置为正确的列才能正常工作。

user_response = user_response.set_index('val_string')
option_numbers = option_numbers.set_index('answer')
user_response['num'] = user_response['num'].fillna(option_numbers['option'])
user_response
val_string
correct 1.0
mute 0.0
test13 1201.0
test15 1203.0
unverified 1.0
NaN NaN
>10 edu 4.0
Name: num, dtype: float64

关于python - 如何使用 pandas 将调查答案映射到选项号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58668462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com