python - 如何过滤 .CSV 文件中的列,然后将这些过滤后的列保存到 Python 中的新 .CSV 文件中?
问题描述
我正在分析一个大型天气数据文件 Data.csv。我需要用 Python 编写一个程序来过滤 Data.csv 文件并仅保留以下列:STATION、NAME/LOCATION、DATE、AWND、SNOW。然后保存过滤后的文件并将其命名为filteredData.csv。
我正在使用 Python 3.8。我只能在某种程度上弄清楚如何在打印功能中过滤我需要的列。如何过滤此文件,然后保存过滤后的文件?
import csv
filename = 'Data.csv'
f = open(filename, 'rt')
reader = csv.reader(f,delimiter=',')
for column in reader:
print(column[0] + "," + column[1] + "," + column[2] + "," + column[3] + "," + column[4] + "," + column[13])
解决方案
如果您在 Windows 下运行它,您可以简单地在命令末尾运行您已经使用“> newfile.csv”编写的代码,以将输出插入测试文件。
如果您想在代码中执行此操作:
import csv
new_filename = 'Reduced_Data.csv'
filename = 'Data.csv'
f = open(filename, 'rt')
reader = csv.reader(f,delimiter=',')
for row in reader:
with open(new_filename, 'a') as output:
output.write('"{}","{}","{}","{}","{}","{}"\n'.format(column[0],column[1],column[2],column[3],column[4],column[13]))
推荐阅读
- dialogflow-es - DialogFlow PermissionDenied:403 IAM 权限“dialogflow.sessions.detectIntent”
- html - 根据第一列的值更改 HTML 表格中的行背景
- python - 如何找到函数 $f(\beta) = \gamma + [1-e^{-j\beta}]/[1-e^{(-j+1)\beta}]$ 的根,使用蟒蛇
- c++ - MRPT Graph Slam 最小示例
- sql - 使用 IF 语句为条目拉取布尔列标题
- assembly - 为什么内存(x86 / nasm)中的数据段之间有空的地址空间?
- d3.js - 在系列图中使用画笔时饼图未正确更新
- google-apps-script - 如何在团队驱动器中的服务帐户创建的电子表格中使用 GAS 功能?
- sql - 如何在sql server中跨服务器插入xml数据类型
- android - 用于 AOSP 开发的 Android Studio 中未显示布局设计预览。如何启用设计预览?