python pandas 数据查找_python – pandas查找半小时数据帧索引的每日系列值

我有一个带有半小时时间序列索引的熊猫数据框和一系列我需要根据等式的日期匹配的每日数据.下面的代码在循环中使用.get()但是很慢并且看起来相当“un

pythonic”.

我已经尝试将系列转换为带有虚拟列的数据框,以尝试合并或查找但由于各种原因我无法使其工作.缺少数据,因此可能存在一些潜在方法的关键错误.

以前回答的问题似乎不适用.一个善于使用lambda函数或.asfreq方法的人可能会想出一些东西.

import pandas as pd

import numpy as np

# Make a 2 day series

days = 2

dates = pd.date_range('20130102',periods=days)

ts_d = pd.Series(np.random.randn(days),index=dates)

ts_d

# Output

2013-01-02 -1.044139

2013-01-03 -1.061720

Freq: D, dtype: float64

# Make an overlapping 4 day dataframe with 60min index

datetimes = pd.date_range('20130101 00:00',periods=4*24, freq = '60min')

df_t = pd.DataFrame(np.random.randn(4*24,4),index=datetimes,columns=list('ABCD'))

# Begin clunkiness

df_t['date'] = df_t.index.date

for t in df_t.index:

d = df_t.loc[t, 'date']

df_t.loc[t, 'E'] = ts_d.get(d)

df_t

一些输出:

A B C D date E

2013-01-01 20:00:00 -0.173764 -1.440833 -0.163796 0.479593 2013-01-01 None

2013-01-01 21:00:00 1.915522 2.308827 -0.849182 -1.478981 2013-01-01 None

2013-01-01 22:00:00 -0.013391 -1.534994 -2.365495 0.747692 2013-01-01 None

2013-01-01 23:00:00 0.739665 -0.566568 0.413195 0.665017 2013-01-01 None

2013-01-02 00:00:00 -0.358202 -1.625681 0.120250 -1.122430 2013-01-02 -1.044139

2013-01-02 01:00:00 1.048837 -0.328021 0.933473 -0.234328 2013-01-02 -1.044139

2013-01-02 02:00:00 1.178195 -1.389543 -0.144850 -2.430063 2013-01-02 -1.044139

2013-01-02 03:00:00 -0.420962 0.244130 1.819005 -0.982521 2013-01-02 -1.044139

.

.

.

2013-01-02 15:00:00 1.809403 -2.505042 -0.509833 -1.238630 2013-01-02 -1.044139

2013-01-02 16:00:00 0.740123 -0.205582 0.795701 0.459017 2013-01-02 -1.044139

2013-01-02 17:00:00 1.252692 1.025432 -0.235781 -0.506460 2013-01-02 -1.044139

2013-01-02 18:00:00 -1.456726 -1.983843 -1.623061 0.629214 2013-01-02 -1.044139

2013-01-02 19:00:00 1.126687 -0.253415 0.163900 0.059876 2013-01-02 -1.044139

2013-01-02 20:00:00 0.156657 0.066207 0.103946 -0.762910 2013-01-02 -1.044139

2013-01-02 21:00:00 -1.123818 0.314226 -0.281381 0.947381 2013-01-02 -1.044139

2013-01-02 22:00:00 -0.945620 0.538180 1.403452 -0.065406 2013-01-02 -1.044139

2013-01-02 23:00:00 0.059012 2.599817 -0.623826 0.796559 2013-01-02 -1.044139

2013-01-03 00:00:00 0.859748 1.476591 0.607554 -1.575007 2013-01-03 -1.06172

2013-01-03 01:00:00 0.678326 0.084930 0.762786 -1.139595 2013-01-03 -1.06172

2013-01-03 02:00:00 -0.034952 -1.224600 0.317359 -1.620755 2013-01-03 -1.06172

2013-01-03 03:00:00 -1.208597 -1.864493 -0.883250 -0.814249 2013-01-03 -1.06172

2013-01-03 04:00:00 -0.061918 0.461941 0.163563 0.532755 2013-01-03 -1.06172

.

.

.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值