我的初始数据框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'),...]
答案 0 :(得分:1)
为什么不直接迭代数据帧的行并只使用索引值?
创建数据框:
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
...