Как извлечь определенную часть файла CSV, используя ключ строки с пандами - PullRequest
0 голосов
/ 12 декабря 2018

У меня огромный CSV-файл с 10000 строками и 500 столбцами.Я хочу извлечь данные из заголовка в строку, которая содержит device_boot.Я хочу удалить все строки после device_boot.

Пример:

Name,Time,status,..
start,05:06:2018 10:10:23,good,..
start,05:06:2018 10:11:23,good,..
failure,05:06:2018 11:10:25,critical,..
device_boot,05:06:2018 13:11:25,reboot,..
start,05:06:2018 13:13:23,good,..
start,05:06:2018 13:16:23,good,..

Итак, мне нужно сохранить в CSV-файле до device_boot строки (строки), используя панд.Я могу удалить конкретную строку по этому ключевому слову, но не могу извлечь до этой части, используя pd.drop(...).

Спасибо за предложения.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Я нахожу индекс ключевого слова, например

val = df.loc[df['name']=='device_boot'].index
print val

Затем, используйте этот индекс строки и извлекайте только до этой переменной,

rowretrive_index = val1+50  // any extra rows can be added here.
print rowretrive_index

df1 = df.iloc[1:rowretrive_index]
df1.to_csv('/out.csv',',',dtype='unicode8')

Надеюсь, это будет полезно.Спасибо, Сундар

0 голосов
/ 12 декабря 2018

Использование:

print(df.loc[:df['Name'].gt('device_boot').idxmin()+1,:])

Выход будет ожидаемым выходом.

Обновление:

print(df.loc[:df.index[df['Name']=='device_boot'].tolist()[-1],:])

И содержит 'device_boot'строка, если хотите ее удалить:

print(df.loc[:df.index[df['Name']=='device_boot'].tolist()[-1]-1,:])
...