Подмножество кадра данных панд, чей тип данных не согласован - PullRequest
0 голосов
/ 26 сентября 2018

enter image description here

У меня есть кадр данных, который выглядит следующим образом.Я хочу найти подмножество этого кадра данных, которое применимо только к 31.07.2008.31.07.2008 является объектом даты и времени.

Как мне выбрать строку 2,3,4,5 и остановить (не включая) 6?

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Похоже, что это все еще в программном обеспечении для работы с электронными таблицами, так что вы можете использовать параметр nrows в read_csv только для чтения до этой точки

pd.read_csv("mycsv.csv", nrows=4, skiprows=1)

Если вы хотите читать и разделять на первое полностью пустоелиния

first_blank_line = df.isnull().all(axis=1).idxmax()
final_df = df.iloc[:first_blank_line]
0 голосов
/ 26 сентября 2018

Является ли число строк между датами фиксированным?

Если это так, вы можете создать новый столбец с повторяющимися датами с помощью:

dates = df[0][::6].repeat(6)
df['dates'] = dates.values

Затем вам нужно будет удалитьзаголовки строк, либо используя тот факт, что они будут иметь нулевые значения (если у вас нет нулевых значений в других местах), либо используя те же рассуждения, которые я делал выше относительно расстояния между строками.

После этого вы можете простоотфильтруйте то, что вы хотите, просто сделав

df[df['dates'] == '7/31/2018']
0 голосов
/ 26 сентября 2018

Вы можете использовать .iloc.Это позволяет вам получить доступ к строкам по номеру.Чтобы выбрать строки 2,3,4 и 5, вы можете просто использовать

df.iloc[[2,3,4,5]]

Имейте в виду, что строки проиндексированы 0, т. Е. Первая строка - 0.

Если вы читаете данные с помощью read_csv(), вы также можете использовать параметры skiprows и nrows, чтобы указать строки, которые вы хотите прочитать:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...