使用长数据帧的条件用另一列的值填充一列

问题描述 投票:0回答:1

我想用另一列的值填充数据框 我使用条件来填写值。 当把它删掉时,我得到一个错误

conditions = [
     (df1['Essentieel_Optioneel'] <= 'essentieel'),
     (df1['Essentieel_Optioneel'] <= 'optioneel')

]

values = df1[['perc_essentieel_skill','perc_essentieel_skill']]
df1['vector'] = np.select(conditions, values)

df1
    811 'list of cases must be same length as list of conditions')
    813 # Now that the dtype is known, handle the deprecated select([], []) case
    814 if len(condlist) == 0:

ValueError: list of cases must be same length as list of conditions

我感觉我的数据框太长了,我有一个框架 19913 * 12 列。

我感觉我必须使用for循环。

python dataframe
1个回答
0
投票

为了清楚起见,您应该提供一个完整的示例,但假设您想使用两列作为替换,则需要转置

values
并转换为 numpy 数组:

values = df1[['perc_essentieel_skill1', 'perc_essentieel_skill2']].T.values
df1['vector'] = np.select(conditions, values)

示例:

  Essentieel_Optioneel perc_essentieel_skill1 perc_essentieel_skill2 vector
0           essentieel                      A                      B      A
1           essentieel                      A                      B      A
2            optioneel                      A                      B      B
© www.soinside.com 2019 - 2024. All rights reserved.