【发布时间】:2014-05-21 01:29:30
【问题描述】:
我想按时合并两个数据帧,但我不想完全合并,而是想得到 max(time1)
我认为 pandas index.searchsorted 是最好的方法,但我不知道如何让合并工作
例如:
import pandas as pd
d1 = {'time' :pd.Series([100., 200., 300.]),'val1' : pd.Series([10., 20., 30.])}
df1 = pd.DataFrame(d1)
df1 = df1.set_index(['time'])
d2 = {'time' :pd.Series([150., 170., 305., 400.]),'val2' : pd.Series([1., 2., 3., 4.])}
df2 = pd.DataFrame(d2)
df2 = df2.set_index(['time'])
在这个例子中,我想找到一个本质上是 df2 的数据帧,但它的 val1 应该是 = [10, 10, 30, 30]。
df1.index.searchsorted(df2.index)
上面似乎返回了我想要的索引......但我不确定从这里去哪里。非常感谢任何帮助!
我曾希望以下内容会返回正确的条目,但它的索引超出范围错误
df1.ix(df1.index[df1.index.searchsorted(df2.index)])
【问题讨论】: