Python 按列读取csv文件
我有一个按行读取csv文件的代码Python 按列读取csv文件,python,csv,multiple-columns,Python,Csv,Multiple Columns,我有一个按行读取csv文件的代码 import csv with open('example.csv') as csvfile: readCSV = csv.reader(csvfile, delimiter=',') for row in readCSV: print(row) print(row[0]) 但是我只想要选定的栏目,有什么技巧可以给我一个脚本 import csv with open('example.csv') as csv
import csv
with open('example.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
for row in readCSV:
print(row)
print(row[0])
但是我只想要选定的栏目,有什么技巧可以给我一个脚本
import csv
with open('example.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
column_one = [row[0] for row in readCSV ]
将提供第一列中的值列表。话虽如此,您还是必须读取整个文件。您不能这样做,因为文件是逐字节写入文件系统的。要知道一行的结束位置,必须读取所有行以检测是否存在换行字符。在CSV中没有办法解决这个问题 因此,您必须读取所有文件,但您可以选择要保留每行的哪些部分。我肯定会使用它 然而,在普通python中,这是实现这一点的方法之一 在本例中,我提取第3行第4列的内容
import csv
target_row = 3
target_col = 4
with open('yourfile.csv', 'rb') as csvfile:
reader = csv.reader(csvfile)
n = 0
for row in reader:
if row == target_row:
data = row.split()[target_col]
break
print data
read\u csv
在pandas
模块中可以加载列的子集。
假设您只想在.csv
文件中加载列1
和3
import pandas as pd
usecols = [1, 3]
df = pd.read_csv('example.csv',usecols=usecols, sep=',')
这是供阅读的。
此外,如果您的文件很大,您可以通过在read\u csv
中指定chucksize
来逐个读取文件。当您说只需要选定的行时,您的意思是要完全跳过读取(从磁盘?)您不感兴趣的列,或者你只是想过滤掉你不感兴趣的列?想在CSV数据固定宽度中只读取我感兴趣的列吗?我认为这是你所问的唯一可能的方法,即使这样,除非你有很多很宽的(数据方面的)列,否则它也可能没有多大意义。为什么你认为你需要跳过阅读这些专栏?而且,要求我们“给你一个剧本”是非常不礼貌的;StackOverflow不是一个免费的代码编写服务,而是一个“我们帮助你帮助你自己”的平台。哇,我钦佩你的礼貌。如果有人问我“给我一个剧本”,我会有点不高兴。请投我一票!好吧,虽然我也希望看到一些尝试——我们都是从某件事开始的,有时这只是一个不了解如何才能做到的问题。参考可以是一个好的开始。(除此之外,网上还有很多人:D)