是否可以使用read_csv只读特定行?

2024-03-29 09:15:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,如下所示:

TEST  
2012-05-01 00:00:00.203 ON 1  
2012-05-01 00:00:11.203 OFF 0  
2012-05-01 00:00:22.203 ON 1  
2012-05-01 00:00:33.203 OFF 0  
2012-05-01 00:00:44.203 OFF 0  
TEST  
2012-05-02 00:00:00.203 OFF 0  
2012-05-02 00:00:11.203 OFF 0  
2012-05-02 00:00:22.203 OFF 0  
2012-05-02 00:00:33.203 OFF 0  
2012-05-02 00:00:44.203 ON 1  
2012-05-02 00:00:55.203 OFF 0  

无法删除"TEST"字符串。

是否可以检查一行是否以日期开头,并且只读取那些以日期开头的行?


Tags: 文件csv字符串testonoff
3条回答

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html?highlight=read_csv#pandas.io.parsers.read_csv

skiprows : list-like or integer Row numbers to skip (0-indexed) or number of rows to skip (int)

通过[0, 6]跳过带有“TEST”的行。

当您从csv.reader中获取row时,并且当您可以确定第一个元素是字符串时,您可以使用

if not row[0].startswith('TEST'):
    process(row)
from cStringIO import StringIO
import pandas

s = StringIO()
with open('file.csv') as f:
    for line in f:
        if not line.startswith('TEST'):
            s.write(line)
s.seek(0) # "rewind" to the beginning of the StringIO object

pandas.read_csv(s) # with further parameters…

相关问题 更多 >