Перебор списка дат из индекса даты и времени - PullRequest
0 голосов
/ 12 мая 2018

Мой исходный фрейм данных df:

                     discharge1  discharge2
datetime                                   
2018-04-25 18:37:00        5862        4427
2018-04-25 21:36:30        6421        4581
2018-04-25 22:13:00        5948        4779
2018-04-26 00:11:30        5703        4314
2018-04-26 02:27:00        4988        3868
2018-04-26 04:28:30        4812        3823
2018-04-26 06:22:30        4347        3672
2018-04-26 10:50:30        3896        3546
2018-04-26 12:04:30        3478        3557
2018-04-26 14:02:30        3625        3598
2018-04-26 15:31:30        3751        3606

Что я хочу сделать, так это получить мои даты в виде списка, массива или серии, где я могу перебирать все элементы в моем списке. Чтобы я мог использовать эти даты для доступа к строкам в другом фрейме данных df_other и в конце добавить их в новый фрейм данных df_new:

for date in date_list():
    df_new = df_new.append(df_other.iloc[df_other.index.get_loc(date)])

который для даты в моем списке должен быть запущен как.

df_new.append(df_other.iloc[df_other.index.get_loc('2018-04-25 18:37:00')])

Я попытался создать список с использованием df.index, но он возвращает Datetimeindex, где я могу получить доступ только к каждой дате как

display(df.index[0])
Timestamp('2018-04-25 18:37:00')

где часть Timestamp разрушает мой вызов .append

Также пробовал df.index.tolist (), но это возвращает список

[Timestamp('2018-04-25 18:37:00'),...]

1 Ответ

0 голосов
/ 13 мая 2018

Почему бы вам просто не выполнить итерацию по строкам кадра данных и просто использовать значения индекса?

создать фрейм данных:

data = [
['2018-04-25 18:37:00',       5862,        4427],
['2018-04-25 21:36:30',       6421,        4581],
['2018-04-25 22:13:00',       5948,        4779],
['2018-04-26 00:11:30',       5703,        4314],
['2018-04-26 02:27:00',       4988,        3868],
['2018-04-26 04:28:30',       4812,        3823],
['2018-04-26 06:22:30',       4347,        3672],
['2018-04-26 10:50:30',       3896,        3546],
['2018-04-26 12:04:30',       3478,        3557],
['2018-04-26 14:02:30',       3625,        3598],
['2018-04-26 15:31:30',       3751,        3606]
]

data = pd.DataFrame(data, columns=['datetime', 'discharge1', 'discharge2'])
data['datetime'] = data['datetime'].apply(pd.to_datetime)
data = data.set_index('datetime')

затем итерируйте по индексу и значениям:

for index, values in data.iterrows():
    print(index)

выход:

2018-04-25 18:37:00
2018-04-25 21:36:30
2018-04-25 22:13:00
2018-04-26 00:11:30
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...