gpt4 book ai didi

python - 从 2 个 pandas 数据框中过滤元素

转载 作者:太空宇宙 更新时间:2023-11-03 14:50:14 25 4
gpt4 key购买 nike

我有两个数据框,分别代表一段时间内的股票价格和一段时间内的股票相关信息(例如公司的基本数据)。

两个数据框都包含每月数据,但它们的时间跨度不同。一个是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()

有人有什么建议吗?

最佳答案

对于列交叉点:

column_intersection = df1.columns & df2.columns

对于行交集:

row_intersection = df1.index & df2.index

然后对每个数据帧进行子集化:

df1 = df1.loc[row_intersection, column_intersection]
df2 = df2.loc[row_intersection, column_intersection]

关于python - 从 2 个 pandas 数据框中过滤元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45929138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com