[英]Equivalent of =INDEX(....MATCH()) in python
我同時使用 Python 和 Excel。 我正在使用xlwings
查看 Excel 工作表,該工作表具有以下值:
date rate
31/01/2016 0.60%
29/02/2016 0.60%
31/03/2016 0.60%
30/04/2016 0.60%
31/05/2016 0.60%
30/06/2016 0.60%
31/07/2016 0.60%
31/08/2016 0.60%
30/09/2016 0.60%
31/10/2016 0.40%
30/11/2016 0.40%
....
31/07/2030 1.65%
然后我有一個看起來也完全一樣的數據框,但它有不同的速率。 我想要做的是讓python根據日期比較Excel-DataFrame的值並將數據框值粘貼到Excel工作表中
到目前為止,我知道如何使用sht_in.range(start,end).value
在 Excel 中獲取這些值,以及如何使用sht_in.range(start,end).value = df_data
將它們插入到 Excel 工作表中,但我不是非常確定如何進行下一步
您想要做的是通過以下方式將 Excel 中的范圍讀入數據框
xl_df = pd.DataFrame(in_sht.range('A2:B10').value)
根據要與值進行比較的現有數據框,您可能需要重命名此數據框的列。
然后,您可能需要使用 Python 數據框對 Excel 數據框進行左連接。
new_df = xl_df.merge(py_df, on=0, how='left').drop(columns=['1_x'])
上面的代碼按每個數據幀中的第一列合並,並從 xl_df(x 數據集)中刪除百分比值。 您應該考慮按列名合並列。
然后,您可以使用新的數據框覆蓋 excel 中的數據
sht_in.range('A2').value = new_df.values.tolist()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.