gpt4 book ai didi

python - 如何根据Python中行值的条件应用列中的值

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:08 25 4
gpt4 key购买 nike

我有一个如下所示的数据框:

df

    Name        year    week    date
0 Adam 2016 16 2016-04-24
1 Mary 2016 17 2016-05-01
2 Jane 2016 20 2016-05-22
3 Joe 2016 17 2016-05-01
4 Arthur 2017 44 2017-11-05
5 Liz 2017 41 2017-10-15
6 Janice 2016 47 2016-11-27

我想创建列季节,以便 df['season'] 根据中的值指定季节 MAMOND

结果应该如下所示:

df_final

    Name        year    week    date      season
0 Adam 2016 16 2016-04-24 MAM
1 Mary 2016 17 2016-05-01 MAM
2 Jane 2016 20 2016-05-22 MAM
3 Joe 2016 17 2016-05-01 MAM
4 Arthur 2017 44 2017-11-05 OND
5 Liz 2017 41 2017-10-15 OND
6 Janice 2016 47 2016-11-27 OND

本质上,低于 40week 值应与 MAM 配对,高于 40 的值应为 OND.

到目前为止我有这个:

condition =df.week < 40
df['season'] = df[condition][[i for i in df.columns.values if i not in ['a']]].apply(lambda x: 'OND')

但它很笨重并且不会产生最终的响应。

谢谢。

最佳答案

使用numpy.where :

condition = df.week < 40
df['season'] = np.where(condition, 'MAM', 'OND')
print (df)
Name year week date season
0 Adam 2016 16 2016-04-24 MAM
1 Mary 2016 17 2016-05-01 MAM
2 Jane 2016 20 2016-05-22 MAM
3 Joe 2016 17 2016-05-01 MAM
4 Arthur 2017 44 2017-11-05 OND
5 Liz 2017 41 2017-10-15 OND
6 Janice 2016 47 2016-11-27 OND

编辑:

要将字符串转换为整数,请使用astype :

condition = df.week.astype(int) < 40

或转换列:

df.week = df.week.astype(int)
condition = df.week < 40

关于python - 如何根据Python中行值的条件应用列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47689237/

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