gpt4 book ai didi

python - 根据第三个变量中的多个条件,在数据框中为多个子组创建一个新变量

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

我有一个数据框,其中包含主题 ID 的一列、包含日期的一列和包含注释的第三列(“可用”/“不可用”/“有问题”)。一个例子:

import pandas as pd

df = pd.DataFrame({'ID':[1,1,1,1,2,2,2],
'Date':[20191219,
20191219,
20191220,
20191220,
20191219,
20191219,
20191219],
'Notes':['usable','usable','unusable','questionable','usable','usable','unusable']})

这给你:

   ID      Date         Notes
0 1 20191219 usable
1 1 20191219 usable
2 1 20191220 unusable
3 1 20191220 questionable
4 2 20191219 usable
5 2 20191219 usable
6 2 20191219 unusable

对于每个主题和每个相应的日期,我想检查“注释”列中是否出现字符串“有问题”或“不可用”。如果是这种情况,我想将值“check”添加到与该日期对应的所有行的第三列。输出应如下所示:

   ID      Date         Notes Comment
0 1 20191219 usable usable
1 1 20191219 usable usable
2 1 20191220 unusable check
3 1 20191220 questionable check
4 2 20191219 usable check
5 2 20191219 usable check
6 2 20191219 unusable check

有人知道怎么做吗?

最佳答案

您可以使用series.isin() + df.groupby()transform使用 any 为每个组创建一个条件列,后跟 np.where() :

c=(df['Notes'].isin(['unusable','questionable'])
.groupby([df['ID'],df['Date']]).transform('any'))
df['Comment']=np.where(c,'check',df['Notes'])
print(df)
<小时/>
   ID      Date         Notes Comment
0 1 20191219 usable usable
1 1 20191219 usable usable
2 1 20191220 unusable check
3 1 20191220 questionable check
4 2 20191219 usable check
5 2 20191219 usable check
6 2 20191219 unusable check

关于python - 根据第三个变量中的多个条件,在数据框中为多个子组创建一个新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59414674/

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