gpt4 book ai didi

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

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

我有一个数据框 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”或类似方法的更优雅的解决方案。

最佳答案

更改为

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'

关于python - 根据另一列中的相应行使用条件值填充数据帧的列的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55409696/

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