简体   繁体   中英

Deleting specific rows of CSV file in python

I have a CSV file, and i want to delete some rows of it based on the values of one of the columns. I do not know the related code to delete the specific rows of a CSV file which is in type pandas.core.frame.DataFrame .

I read related questions, and i found that people suggest writing every line that is acceptable in a new file. I do not want to do that. The thing that i want is:

1) to delete the rows that I know the index of them (number of the row)

or

2) to make a new CSV in the memory of the python (not to write and again read it )

Here's an example of what you can do with pandas . If you need more detail, you might find Indexing and Selecting Data a helpful resource.

import pandas as pd
from io import StringIO

mystr = StringIO("""speed,time,date
12,22:05,1
15,22:10,1
13,22:15,1""")

# replace mystr with 'file.csv'
df = pd.read_csv(mystr)

# convert time column to timedelta, assuming mm:ss
df['time'] = pd.to_timedelta('00:'+df['time'])

# filter for >= 22:10, i.e. second item
df = df[df['time'] >= df['time'].loc[1]]

print(df)

   speed     time  date
1     15 00:22:10     1
2     13 00:22:15     1

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM