gpt4 book ai didi

Python,Pandas删除指定列中具有特定值的行

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:24 27 4
gpt4 key购买 nike

Excel 电子表格如下所示。

enter image description here

对于 Pandas,我想删除列“Project C”和“Project E”,以及列“Project A”和“Project D”中值为“XX”的所有行。

import pandas as pd
import numpy as np

work_file = "C:\\test.xlsx"

df = pd.read_excel(work_file, sheetname = "Sheet1", index_col = 0)

column_list_to_remove = [“Project C", “Project E"]

results1 = df.drop(column_list_to_remove, axis=1)

writer = pd.ExcelWriter("C:\\test new.xlsx")

pd.formats.format.header_style = None

results1.to_excel(writer,'Sheet1')

writer.save()

以上方法可以很好地删除列。

我尝试在这一行添加删除“项目 A”中值为“XX”的行,但失败了。不希望删除“D 项目”中的内容。

results1 = results1[results1."Project A" != "XX"]
# SyntaxError: invalid syntax

如何删除这些行?谢谢。

最佳答案

如果您的列名称没有空格,您可以执行以下操作:

results1 = results1.query("ColumnName != 'XX'")

或者就地:

results1.query("ColumnName != 'XX'", inplace=True)

唉,他们确实这么做了。现在您可以重命名这些列,因为空格是邪恶的化身,或者执行以下操作:

results1 = results1[results1['Project A'] != 'XX']

基本上:为索引创建一个掩码并对数据帧进行切片。

重命名不带空格的列也可以在单行代码中完成:

results1.columns = [''.join(x.strip().split()) for x in results1.columns]

然后您可以继续执行以下操作:

column_list = ['ProjectA', 'ProjectD']
for col in column_list:
results1.query(col+"!='XX'", inplace=True)

关于Python,Pandas删除指定列中具有特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46360690/

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