所以我正在读取一个csv文件,并且正在检查一个特定的列,它的值是否为负。如果为负,我想写另一个csv。
编号(列名): 1个 -2 3 -10
编号: -2 -10
基本上,应仅将这些行写入Number列值为负的另一个csv
我尝试使用熊猫和csv阅读器:
df1=pd.read_csv(inputCSVFile)
df2=df1[df1[Attribute]<(0) == True]
df2.to_csv(outputCSVFile,index=False)
with open(inputCSVFile,"r") as inputCSV:
input=csv.reader(inputCSV)
inputList=list(input)
with open(outputCSVFile,"w") as outputCSV:
output=csv.writer(outputCSV)
indexNumber=inputList[0].index(Attribute)
print(indexNumber)
for row in input:
if row[Attribute]<0:
output.writerow(row)
到底出了什么问题?对于csv.reader,输出文件完全为空白。
答案 0 :(得分:1)
选中<0
后,您无需写'== True'使用熊猫的逐步方法:
将熊猫作为pd导入
使用pd.read_csv
确保属性是数字类型
创建一个包含负值的新数据框。
import pandas as pd
df1=pd.read_csv(inputCSVFile)
df1[Attribute]=df1[Attribute].astype(float)
df2=df1[df1[Attribute]<0]
df2.to_csv(outputCSVFile,index=False)