gpt4 book ai didi

python - 如何根据另一列的条件对 Pandas 中的一列进行子集化

转载 作者:太空宇宙 更新时间:2023-11-04 00:57:58 24 4
gpt4 key购买 nike

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

     dish_quant_bought    dish_name
20 A
18 B
20 A
18 B
20 A
18 B
10 C
18 B
10 C
18 B
20 D
20 D
20 D
20 D

我想为给定的菜名提取相应的 dish_quant_bought..所以对于菜 A,它应该只返回 20,B 是 18,C 是 10,D 是 20

我正在尝试使用以下代码,但它不起作用..

df_['dish_quant_bought']['dish_name'] == 'A'

请帮忙..

最佳答案

不清楚为什么你有重复项,但你可以使用 bool 条件来屏蔽 df 并返回感兴趣的列:

In [256]:
df = df.drop_duplicates()
df

Out[256]:
dish_quant_bought dish_name
0 20 A
1 18 B
6 10 C
10 20 D

In [257]:
df.loc[df['dish_name']=='A', 'dish_quant_bought']

Out[257]:
0 20
Name: dish_quant_bought, dtype: int64

原始 df 上的掩码:

In [259]:
df['dish_name']=='A'

Out[259]:
0 True
1 False
2 True
3 False
4 True
5 False
6 False
7 False
8 False
9 False
10 False
11 False
12 False
13 False
Name: dish_name, dtype: bool

无需先调用drop_duplicates,过滤后调用unique即可获取唯一值:

In [297]:
df.loc[df['dish_name']=='A', 'dish_quant_bought'].unique()

Out[297]:
array([20], dtype=int64)

关于python - 如何根据另一列的条件对 Pandas 中的一列进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34205884/

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