【问题标题】:Checking the Value of a Specific Column in Every Row of a CSV with Python使用 Python 检查 CSV 每一行中特定列的值
【发布时间】:2015-05-29 18:57:15
【问题描述】:

为简单起见,使用如下数据:

Name,Age,Height
Joe,14,65
Sam,18,74
Sarah,21,62

我想遍历文件的每一行,将Age 列与某个值进行比较(例如:16)。如果值小于固定值,我想删除该行。

在本例中,我将得到以下数据:

Name,Age,Height
Sam,18,74
Sarah,21,62

提前致谢!

【问题讨论】:

    标签: python csv python-3.x


    【解决方案1】:
    f = open('myfile.csv', 'r')
    g = open('mynewfile.csv','w')
    
    for line in f:
      if int(line.split(",")[1]) != FIXED_VALUE:
        g.write(line)
    
    f.close()
    g.close()
    

    对于这样一个简单的用例,我不会使用外部 csv 库。

    *代码未经测试

    【讨论】:

      【解决方案2】:

      这是一个使用 csv 模块的基本示例。它会创建一个没有标准数据的新文件。

      #!/usr/bin/python
      
      import csv
      
      infile = 'input.csv'
      outfile = 'output.csv'
      
      wfh = open(outfile, 'w')
      
      with open(infile, 'r') as fh:
      
          reader = csv.DictReader(fh, delimiter=',')
      
          for row in reader:
              name = row['Name']
              age = row['Age']
              height = row['Height']
      
          if age >= 16:
              wfh.write("{},{},{}".format(name, age, height))
      
      wfh.close()
      

      【讨论】:

        【解决方案3】:
        f = open("file.csv","r")
        
            lines=f.readlines()
        
        f.close()
        
            f = open("file.csv","w")
        
        for line in lines:
           if int(line.split(",")[1]) >= 16:
                f.write(line)
        f.close()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-04-15
          • 2023-04-03
          • 2018-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多