gpt4 book ai didi

python - 是否有可能根据关键字列表创建一个新列

转载 作者:行者123 更新时间:2023-12-04 08:15:39 24 4
gpt4 key购买 nike

有没有可能根据关键字列表创建一个新列?

Keywords = ["A", "B"]
我有这样的数据:
Location             Type          
Ger A
Ger F
Ger C
Ned D
Ned A
Ned B
Aus C
US B
如果关键字存在于 Type 列中,并且存在 2 个关键字,则该值应该两个关键字都带有逗号,我想创建一个新列。我遇到了问题,因为我还必须先检查位置,然后键入...
Location             Type          NewType
Ger A A
Ger F A
Ger C A
Ned D A,B
Ned A A,B
Ned B A,B
Aus C NaN
US B B
除了 if-else还有什么办法吗? ?

最佳答案

让我们使用 groupbymap :

m = df['Type'].isin(keywords)
s = df[m].groupby('Location')['Type'].agg(','.join)
df['NewType'] = df['Location'].map(s)
详情:
使用 .isin 创建 bool 掩码测试 Type 中的值存在于 keywords列表:
print(m)

0 True
1 False
2 False
3 False
4 True
5 True
6 False
7 True
Name: Type, dtype: bool
使用上述掩码和 groupby 过滤行在 Location然后 agg Type使用 join :
print(s)

Location
Ger A
Ned A,B
US B
Name: Type, dtype: object
.map 从上述聚合帧到原始 df 的值基于 Location
print(df)

Location Type NewType
0 Ger A A
1 Ger F A
2 Ger C A
3 Ned D A,B
4 Ned A A,B
5 Ned B A,B
6 Aus C NaN
7 US B B

关于python - 是否有可能根据关键字列表创建一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65719065/

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