我有一个小脚本,用pandas打开.csv文件。该文件适用于房屋及其价格,但有些房屋标记为0平方英尺,仍然是定价的。这会弄乱我的数据,那么有没有办法在sq__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)
答案 0 :(得分:0)
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']
答案 1 :(得分:0)
您可以使用:
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]