我的df有3栏
df = pd.DataFrame({"col_1": (0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0),
"col_2": (0.0, 0.24, 1.0, 0.0, 0.22, 3.11, 0.0),
"col_3": ("Mon", "Tue", "Thu", "Fri", "Mon", "Tue", "Thu")})
我想删除df.col_1为1.0且df.col_2为0.0的行。因此,我会得到:
df = pd.DataFrame({"col_1": (0.0, 0.0, 1.0, 0.0, 1.0),
"col_2": (0.0, 0.24, 1.0, 0.22, 3.11),
"col_3": ("Mon", "Tue", "Thu", "Mon", "Tue")})
我试过了:
df_new = df.drop[df[(df['col_1'] == 1.0) & (df['col_2'] == 0.0)].index]
它给了我错误:
'method' object is not subscriptable
任何想法如何解决上述问题?
drop是一种方法,您使用调用它[]
,因此它为您提供了:
'method' object is not subscriptable
更改为()
(正常方法调用),它应该可以工作:
import pandas as pd
df = pd.DataFrame({"col_1": (0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0),
"col_2": (0.0, 0.24, 1.0, 0.0, 0.22, 3.11, 0.0),
"col_3": ("Mon", "Tue", "Thu", "Fri", "Mon", "Tue", "Thu")})
df_new = df.drop(df[(df['col_1'] == 1.0) & (df['col_2'] == 0.0)].index)
print(df_new)
输出量
col_1 col_2 col_3
0 0.0 0.00 Mon
1 0.0 0.24 Tue
2 1.0 1.00 Thu
4 0.0 0.22 Mon
5 1.0 3.11 Tue
问题内容: 可以说这是我的数据框 看起来像这样… 我想删除第1行,因为它具有与第0行相同的生物和中心。我想保留第2行,因为它具有相同的生物但中心与第0行不同。 像这样的事情基于drop_duplicates输入结构是行不通的,但这是我正在尝试做的事情 有什么建议 ? 编辑:更改df有点适合正确答案的示例 问题答案: 您的语法错误。这是正确的方法: 或者在这种特定情况下,只需: 两者都返回以下内容:
问题内容: 我需要删除pandas中数据框的前三行。 我知道会删除最后一行,但我不知道如何删除前n行。 问题答案: 用途: 将为您提供一个没有前三行的新df。
问题内容: 我有2个数据框,一个命名为USERS,另一个命名为EXCLUDE。他们两个都有一个名为“电子邮件”的字段。 基本上,我要删除EXERSUDE中包含电子邮件的USERS中的每一行。 我该怎么做? 问题答案: 您可以将和条件一起使用,通过以下方式反转布尔值: 另一个解决方案:
问题内容: 我有一个来自AG列的数据文件,如下所示,但是当我用它读取数据时,它毫无理由地在末尾打印了一个额外的列。 我已经多次查看过我的数据文件,但是其他任何列中都没有多余的数据。我在阅读时应如何删除此多余的列?谢谢 问题答案: df = df.loc[:, ~df.columns.str.contains(‘^Unnamed’)] 如果CSV文件的第一列具有索引值,则可以执行以下操作:
问题内容: 我有数据框: df 如何删除列名,并从该数据帧?一种方法是将其写入csv文件,然后在指定header = None的情况下读取它。有没有一种方法,而无需写到csv并重新读取? 问题答案: 我认为你不能删除列名,只能通过重新设置有: 这与使用和相同: 下一个解决方案:
问题内容: 当日期列的值在日期列表中时,我想从熊猫数据框中删除行。以下代码不起作用: 我收到以下错误: ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。 问题答案: 您可以使用。 将返回布尔值,具体取决于每个元素是否在列表内。然后,您可以将转换为,反之亦然。