根据列值删除Python Pandas中的DataFrame行[重复]
Posted
技术标签:
【中文标题】根据列值删除Python Pandas中的DataFrame行[重复]【英文标题】:Deleting DataFrame row in Python Pandas based on column values [duplicate] 【发布时间】:2016-05-05 05:28:55 【问题描述】:我有一个数据集,我想根据该行的 2 或列值从数据框中删除行。 例如 - 我有关于美国所有电视节目的数据框,我需要根据电视节目的季节和剧集删除电视节目的特定行。 就像我需要删除 TV SHow-Gotham 的行,但只删除包含第 4 季和第 10 集的行。
如果我能得到这方面的帮助,我将不胜感激。
【问题讨论】:
这并不是那个问题的真正重复。该问题询问有关单列值的条件。此问题询问涉及多列的条件。 【参考方案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 的列,它是整数类型,我想在名为 Log_Lnc 的相同数据框是 Lnc 列的 log base2 值。如果您能帮助我,将不胜感激 我试图将您解释的相同逻辑应用于以下代码,但它不起作用 - 如果 mdy(9,24,2007)以上是关于根据列值删除Python Pandas中的DataFrame行[重复]的主要内容,如果未能解决你的问题,请参考以下文章
根据另一个数据框 python pandas 替换列值 - 更好的方法?
根据其他列值/ Pandas -Python 在数据框中创建 ID 列