根据列值删除Python Pandas中的DataFrame行

时间:2016-01-28 01:27:21

标签: pandas ipython dataframe data-analysis

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

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

1 个答案:

答案 0 :(得分:0)

您只需要一个布尔系列来索引数据帧。类似的东西:

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