如何消除表中的行

2024-05-15 15:18:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个小脚本,可以打开一个带有pandas的.csv文件。该文件是关于房屋及其价格的,但有些房屋标为0平方英尺,仍在定价。这会弄乱我的数据,所以有没有办法完全删除sq\u ft列中所有值为0的行?谢谢

digits = pandas.read_csv('C:/Users/saeed/Downloads/Sacramentorealestatetransactions.csv')

print(tabulate(digits, headers='keys', tablefmt='psql'))

with open('C:/Users/saeed/Downloads/Sacramentorealestatetransactions.csv') as i:
    sqft = [int(row["sq__ft"]) for row in DictReader(i)]
    print(sqft)

with open('C:/Users/saeed/Downloads/Sacramentorealestatetransactions.csv') as i:
    price = [int(row["price"]) for row in DictReader(i)]
    print(price)

Tags: 文件csvpandasdownloadswithsqusersprice
2条回答

您可以使用:

df = df[~(df.sqft == 0)]

或者

df = df[df.sqft != 0]

下面是这些操作如何在可复制示例上工作的示例:

>>> import pandas as pd 
>>> df = pd.DataFrame([[1,2],[1,3]], columns=list("AB"))
>>> df 
   A  B
0  1  2
1  1  3
>>> 
>>> df[~(df.B == 3)]
   A  B
0  1  2
>>> df[df.B != 3]
   A  B
0  1  2
>>> df[df.B != 3]

使用^{}^{}

df[df['sqft'] != 0]

df.query("sqft != 0")

样品:

df = pd.DataFrame({'sq__ft':[0,2,3], 'price':[3,4,6]})
print (df)
   price  sq__ft
0      3       0
1      4       2
2      6       3

df1 = df[df['sq__ft'] != 0]
print (df1)
   price  sq__ft
1      4       2
2      6       3

df1 = df.query("sq__ft != 0")
print (df1)

   price  sq__ft
1      4       2
2      6       3

编辑:

如果0不是integer,而是string添加''

df1 = df[df['sqft'] != '0']

相关问题 更多 >