我收到錯誤消息:ValueError:錯誤的項目數(shù)為 3,放置意味著 1,我正在努力弄清楚從哪里開始,以及如何開始解決這個問題。我不太明白錯誤的含義;這讓我很難排除故障。我還在我的 Jupyter Notebook 中包含了觸發(fā)錯誤的代碼塊。根據(jù)許多條件,我無法在數(shù)據(jù)幀上創(chuàng)建變量。我希望根據(jù)條件的答案添加一個帶有二進制變量“是”/“否”的列。我的數(shù)據(jù)框是從 11 列的 CSV 文件構(gòu)建的。我試試這個代碼:import pandas as pdimport numpy as npdf['yes/no'] = np.where(df[(df['var_1'].isin(list)) & (df['var2'] >= '2000-01-01') & (df['var_2'] <= '2000-12-31') & (df['var_3'] >0) & (df['var_4'] =='OK')],'yes','No')我認為問題來自變量的創(chuàng)建,因為沒有np.where條件的代碼是正確的。但是當我想用這些條件創(chuàng)建一個變量并執(zhí)行代碼時,它會顯示錯誤:Wrong number of items passed 12, placement implies 1您知道該錯誤意味著什么以及如何解決嗎?
1 回答

子衿沉夜
TA貢獻1828條經(jīng)驗 獲得超3個贊
np.where返回一個大小僅為它找到的匹配數(shù)的數(shù)組。如果你想在你的 df 中添加一列,你需要一個大小相同的系列,True或者False取決于條件。為此,只需使用一個裸條件:
df['yes/no'] = 'No'
rows = (df['var_1'].isin(list)) &
(df['var2'] >= '2000-01-01') &
(df['var_2'] <= '2000-12-31') &
(df['var_3'] >0) &
(df['var_4'] =='OK')
df.loc[rows, 'yes/no'] = 'yes'
添加回答
舉報
0/150
提交
取消