У меня есть файл CSV, и я хочу удалить некоторые его строки на основе значений одного из столбцов. Я не знаю соответствующего кода для удаления определенных строк файла CSV, который имеет тип pandas.core.frame.DataFrame.
Я прочитал связанные вопросы и обнаружил, что люди предлагают записать каждую приемлемую строку в новый файл. Я не хочу этого делать. Я хочу:
1) удалить строки, индекс которых я знаю (номер строки)
или же
2) сделать новый CSV в памяти питона (не писать, а заново читать)
спасибо, добавил в основной вопрос.
Я полагаю, вы имеете в виду, что время больше или равно 22:05? В противном случае первая строка вашего вывода будет удалена.
да. Мне просто нужны строки, время которых больше порога, например 22:05. Я знаю, как их обнаружить, я не знаю, как их удалить.






Вот пример того, что вы можете сделать с pandas. Если вам нужна дополнительная информация, вы можете найти Индексирование и выбор данных полезным ресурсом.
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
очень хорошо Спасибо. Это очень мило с вашей стороны, если вы можете сообщить мне, как добавлять данные в mysrt в цикле. Я имею в виду, что в цикле я определяю, какие строки приемлемы. теперь я хочу добавить допустимые данные в mystr в этом цикле.
@ReihanehKouhi, Допустим, нет mystr, это заполнитель для моего комментария # replace mystr with 'file.csv'.
Можете ли вы показать нам, как выглядят ваши данные и как вы хотите, чтобы они выглядели после ваших манипуляций? Достаточно нескольких рядов (~ 5).