读取csv文件并检查特定列是否为负。如果为true,则将相应的行写入另一个csv

时间:2019-06-17 08:04:54

标签: python csv

所以我正在读取一个csv文件,并且正在检查一个特定的列,它的值是否为负。如果为负,我想写另一个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)

csv.reader:

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,输出文件完全为空白。

1 个答案:

答案 0 :(得分:1)

选中<0

后,您无需写'== True'

使用熊猫的逐步方法:

  1. 将熊猫作为pd导入

  2. 使用pd.read_csv

  3. 读取CSV
  4. 确保属性是数字类型

  5. 创建一个包含负值的新数据框。

    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)