为了账号安全,请及时绑定邮箱和手机立即绑定

根据另一列中的相应行使用条件值填充数据框的列的最佳方法是什么?

根据另一列中的相应行使用条件值填充数据框的列的最佳方法是什么?

动漫人物 2021-12-21 15:59:16
我有一个数据框 df,我试图在其中根据条件填充空“Set”列中的值。条件如下:每当'valence_median_split'列的值在相应行中为'Low_Valence'时,'Set'列的值需要为“IN”,在所有其他情况下为“OUT”。请参阅下面的示例,了解我尝试解决此问题的示例:df.head()Out[65]:               ID Category  Num Vert_Horizon Description  Fem_Valence_Mean  \0  Animals_001_h  Animals    1            h  Dead Stork              2.40   1  Animals_002_v  Animals    2            v        Lion              6.31   2  Animals_003_h  Animals    3            h       Snake              5.14   3  Animals_004_v  Animals    4            v        Wolf              4.55   4  Animals_005_h  Animals    5            h         Bat              5.29      Fem_Valence_SD  Fem_Av/Ap_Mean  Fem_Av/Ap_SD  Arousal_Mean ...   Contrast  \0            1.30            3.03          1.47          6.72 ...      68.45   1            2.19            5.96          2.24          6.69 ...      32.34   2            1.19            5.14          1.75          5.34 ...      59.92   3            1.87            4.82          2.27          6.84 ...      75.10   4            1.56            4.61          1.81          5.50 ...      59.77      JPEG_size80   LABL   LABA   LABB  Entropy  Classification  \0       263028  51.75  -0.39  16.93     7.86                   1       250208  52.39  10.63  30.30     6.71                   2       190887  55.45   0.25   4.41     7.83                   3       282350  49.84   3.82   1.36     7.69                   4       329325  54.26  -0.34  -0.95     7.82                      valence_median_split  temp_selection  set  0           Low_Valence   Animals_001_h       1          High_Valence             NaN       2           Low_Valence   Animals_003_h       3           Low_Valence   Animals_004_v       4           Low_Valence   Animals_005_h       [5 rows x 36 columns]df['set'] = np.where(df.loc[df['valence_median_split'] == 'Low_Valence'], 'IN', 'OUT') ValueError: Length of values does not match length of index我可以通过使用 loc 将 df 分成两个不同的 df 来实现这一点,但想知道是否有使用“np.where”或类似方法的更优雅的解决方案。
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

改成


df['set'] = np.where(df['valence_median_split'] == 'Low_Valence', 'IN', 'OUT') 

如果需要 .loc


df.loc[df['valence_median_split'] == 'Low_Valence','set']='IN'

df.loc[df['valence_median_split'] != 'Low_Valence','set']='OUT'


查看完整回答
反对 回复 2021-12-21
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信