Pandas 基于列值删除Python中的数据帧行

Pandas 基于列值删除Python中的数据帧行,pandas,ipython,dataframe,data-analysis,Pandas,Ipython,Dataframe,Data Analysis,我有一个数据集,我想根据该行的2个或列值从数据框中删除行。 例如,我有关于美国所有电视节目的数据框,我需要根据电视节目的季节和插曲删除电视节目的特定行。 就像我需要删除电视节目的行-哥谭,但只删除包含第4季和第10集的行 如果我能得到这方面的帮助,我将不胜感激。您只需要一个布尔序列来索引数据帧。比如: conditions = np.logical_and( df.col1 == "Gotham", df.col2 == 4) # or, if you need more

我有一个数据集,我想根据该行的2个或列值从数据框中删除行。 例如,我有关于美国所有电视节目的数据框,我需要根据电视节目的季节和插曲删除电视节目的特定行。 就像我需要删除电视节目的行-哥谭,但只删除包含第4季和第10集的行


如果我能得到这方面的帮助,我将不胜感激。

您只需要一个布尔序列来索引数据帧。比如:

conditions = np.logical_and(
     df.col1 == "Gotham",
     df.col2 == 4)

# or, if you need more than two columns in your condition do this:
conditions = np.all(np.array(
    [df.col1 == "Gotham",
     df.col2 == 4,
     df.col3 == 10]), axis=0)

df = df[~conditions]
针对下面的后续问题,我们

conditions = np.logical_and(
     df.name == "Gotham",
     df.year == 2011)

df["model_ind"][conditions] = 1

您只需要一个布尔序列来索引数据帧。比如:

conditions = np.logical_and(
     df.col1 == "Gotham",
     df.col2 == 4)

# or, if you need more than two columns in your condition do this:
conditions = np.all(np.array(
    [df.col1 == "Gotham",
     df.col2 == 4,
     df.col3 == 10]), axis=0)

df = df[~conditions]
针对下面的后续问题,我们

conditions = np.logical_and(
     df.name == "Gotham",
     df.year == 2011)

df["model_ind"][conditions] = 1

谢谢Bob的回复,非常感谢,代码运行良好,没问题!请随意接受答案。我面临另一个问题,在本期中,我想将名为-‘model_ind’的列的值替换为1,如果节目名称为Gotham,年份为2011年。如果您能帮助我,我将不胜感激,谢谢,那太完美了,非常感谢我想向您提出最后一个疑问,我有一个列,名为Lnc,类型为integer,我想在同一数据框中创建另一个列值,名为Log_Lnc,它是列Lnc的Log base2值。如果你能帮助我,我会非常感激,我正试图将你解释的相同逻辑应用到以下代码中,但它不起作用-如果mdy(9,242007)感谢Bob的回复,非常感激,代码工作得很好,没问题!请随意接受答案。我面临另一个问题,在本期中,我想将名为-‘model_ind’的列的值替换为1,如果节目名称为Gotham,年份为2011年。如果您能帮助我,我将不胜感激,谢谢,那太完美了,非常感谢我想向您提出最后一个疑问,我有一个列,名为Lnc,类型为integer,我想在同一数据框中创建另一个列值,名为Log_Lnc,它是列Lnc的Log base2值。如果您能帮助我,我会非常感激。我试图将您解释的相同逻辑应用于以下代码,但它不起作用-如果mdy(9,242007),这实际上不是该问题的重复。这个问题问的是关于单列值的条件。这个问题询问了一个涉及多个列的条件。这实际上不是该问题的重复。这个问题问的是关于单列值的条件。此问题询问涉及多个列的条件。