gpt4 book ai didi

python - 如何检查 DataFrame 列值是否存在于多个列表中的任何一个中,如果不存在,则填充另一列?

转载 作者:行者123 更新时间:2023-11-30 21:50:55 31 4
gpt4 key购买 nike

我正在尝试使用 'boys''girls' 填充 df['Group'] 'both' 如果它们各自的 df['Color'] 值存在于任何列表中,或者在 df['Group'] 中填充 NaN 如果 df['Color'] 值不存在于任何列表中。

我有这个:

boys = ['Brown', 'Green']
girls = ['Violet', 'Verde']
both ['Black', 'White']

Color | Group
---------------------
0 | 'Brown' | NaN
1 | 'Green' | NaN
2 | 'Black' | NaN
3 | 'White' | NaN
4 | 'Verde' | NaN
5 | 'Purple'| NaN
6 | 'Violet'| NaN

我想要这个:

           Color | Group
---------------------
0 | 'Brown' | 'boys'
1 | 'Green' | 'boys'
2 | 'Black' | 'both'
3 | 'White' | 'both'
4 | 'Verde' | 'girls'
5 | 'Purple'| NaN
6 | 'Violet'| 'girls'

最佳答案

您可以创建字典:

dct = dict(boys = ['Brown', 'Green'],
girls = ['Violet', 'Verde'],
both = ['Black', 'White'])

dct = {i: k for k, v in dct.items() for i in v}

输出:

{'Brown': 'boys',
'Green': 'boys',
'Violet': 'girls',
'Verde': 'girls',
'Black': 'both',
'White': 'both'}

然后你可以使用方法map:

df['Group'] = df['Color'].map(dct)

输出:

    Color  Group
0 Brown boys
1 Green boys
2 Black both
3 White both
4 Verde girls
5 Purple NaN
6 Violet girls

关于python - 如何检查 DataFrame 列值是否存在于多个列表中的任何一个中,如果不存在,则填充另一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60252959/

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