我有两个数据代表股票价格随着时间的推移和股票相关的信息,随着时间的推移(例如,基本数据的公司)。
这两种数据都包含月数据,但是它们跨越不同的时间跨度。一个是5年,另一个是10年。而且,两者没有相同数量的股票,只有80%的重叠。
下面是数据文件的一个示例:
days1 = pd.date_range(start='1/1/1980', end='7/1/1980', freq='M')
df1 = pd.DataFrame(np.random.randn(6, 4), columns=list('ABCD'),index=days1)
days2 = pd.date_range(start='1/1/1980', end='5/1/1980', freq='M')
df2 = pd.DataFrame(np.random.randn(4, 6), columns=list('ABCDEF'),index=days2)我的目标是将两个数据减少到内部接口。也就是说,两者都涵盖相同的时间段和包含相同的股票。我的索引包含日期,列名是股票名。
我尝试过merge()等的多种变体,但是那些重新创建了合并的数据格式,我想保留这两个数据格式。我也尝试过isin(),但是我很难访问每个数据的索引。例如:
df3=df1[df1.isin(df2)].dropna()有人有什么建议吗?
发布于 2017-08-29 01:28:24
对于列的交集:
column_intersection = df1.columns & df2.columns对于行交叉口:
row_intersection = df1.index & df2.index然后只对每个dataframe进行子集:
df1 = df1.loc[row_intersection, column_intersection]
df2 = df2.loc[row_intersection, column_intersection]https://stackoverflow.com/questions/45929138
复制相似问题