【发布时间】:2019-03-18 06:24:57
【问题描述】:
我有一个周五所有证券的价目表。一些证券在周六和周五保持相同的价格。我想复制周五到周六的价格,以获取不在周六列出的证券价格。
我尝试使用 pandas merge 来完成这项任务,如下所示。
我将Indicator 设置为True,如下所示为两个数据框加入True。
# df_friday has 10 securities
# df _saturday has 3 securities
merge_df=pd.merge(df_friday,df_saturday,on='security',how="outer",indicator=True)
merge_df = merge_df[merge_df['_merge']=='left_only']
merge_df =merge_df.drop(['price_y','_merge'],axis=1)
merge_df = merge_df.rename(columns = {'price_x':'price'})
df_saturday = pd.concat([df_saturday,merge_df],ignore_index=True)
我的两个数据框的列是一样的,
Columns: [security, price]
我做对了吗?或者我可以用一种简单的方式做到这一点吗?
例如,
# df_friday
security price
1 apple 35.25
2 reliance 25.5
3 samsung 12.5
4 tata 28.5
5 sony 30.2
# df_saturday
security price
1 reliance 26.8
2 samsung 11.2
# df_saturday_result should be as follows,
security price
1 reliance 26.8
2 samsung 11.2
3 apple 35.25
4 tata 28.5
5 sony 30.2
【问题讨论】:
-
你能添加一些样本数据来质疑预期的输出吗?
标签: python pandas dataframe merge