gpt4 book ai didi

python - 数据框中单列的多个条件,pandas

转载 作者:行者123 更新时间:2023-12-02 20:40:29 25 4
gpt4 key购买 nike

我正在尝试从单个数据帧列中选择一个子集,并且我需要帮助在单个列上应用两个条件。例如,如何在下表中同时选择“Tom”和“Chris”?

import pandas as pd
dic={"Name":["Chris","Tom","Steven"], "Age":[12,34,55]}
dic={"Name":["Chris","Tom","Steven"], "Age":[12,34,55]}
df=pd.DataFrame(dic)
df[df["Name"]=="Tom"]

为什么我使用的时候 df[df["姓名"]==("克里斯"或"汤姆")]它选择“Chris”,但是当 or 被 and 替换时,“Tom”被选中?

最佳答案

当我们检查条件1或条件2时 - 如果第一个条件/操作数为True就足够了,所以如果第一个为True - 第二个将 被检查(因为有一个 True 就足够了):

In [247]: 1 or 2
Out[247]: 1

对于 AND,如果第一个条件为 True,我们还必须检查第二个条件(因为所有条件必须为 True):

In [248]: 1 and 2
Out[248]: 2

但是如果第一个条件是False,我们不需要检查第二个条件(因为有一个False就足够了 - 它会让整个“东西”False):

In [250]: 0 and 1
Out[250]: 0

相同的逻辑将应用于字符串(注意:空字符串将被评估为False):

In [242]: ("Chris" or "Tom")
Out[242]: 'Chris'

In [249]: ("Chris" and "Tom")
Out[249]: 'Tom'

所以当你这样做

df[df["Name"]==("Chris" or "Tom")]

它与:

相同
df[df["Name"]=="Chris"]

如何正确地做到这一点(以 Pandas 的方式):

In [243]: df[df["Name"].isin(["Chris","Tom"])]
Out[243]:
Age Name
0 12 Chris
1 34 Tom

关于python - 数据框中单列的多个条件,pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46180717/

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