1
我有數據幀它看起來像下面:的Python KeyError異常:大熊貓:匹配行價值列名/關鍵,其中一些項丟失
Q5 | Q10 | Q41 | item
a | b | c | Q5
d | e | f | Q10
g | h | i | Q571
j | k | l | Q23340
m | n | o | Q41
h | p | s | Q10
其中Q5,Q10,Q41,項目是列名數據幀。我想添加一個更多的列「name」,它將具有列「item」的值與列名稱匹配的列的值。所以,我希望它看起來像如下:
Q5 | Q10 | Q41 | item | name
a | b | c | Q5 | a
d | e | f | Q10 | e
g | h | i | Q571 | NA
j | k | l | Q23340 | NA
m | n | o | Q41 | o
h | p | s | Q10 | p
這裏的問題是,有更多的項目比列。因此,並非列項中的所有值都以引起keyError的列存在。我試圖做類似下面:
df['col_exist'] = [(col in df.columns) for col in df.item]
df['name'] = np.where(df['col_exist']==True, df[df.item], np.nan)
而且我得到的錯誤爲:
KeyError: "['Q571', 'Q23340'] not in index"
我使用如下df.apply也試過:
df['name'] = np.where(df['col_exist']==True, df.apply(lambda x: x[x.item], axis=1), np.nan)
但我下面得到錯誤:
KeyError: ('Q571', 'occurred at index 2')
我不知道爲什麼它我試圖訪問不存在的列,儘管將col_exit檢查放在那裏。
有人可以幫我解決這個問題嗎?