Эквивалент = INDEX (.... MATCH ()) в python - PullRequest
0 голосов
/ 17 января 2020

Я использую Python и Excel одновременно. Я смотрю на лист Excel, используя xlwings, этот лист имеет следующие значения:

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

Пока я знаю, как захватить такие значения в Excel, используя sht_in.range(start,end).value и как вставить их в лист Excel, используя sht_in.range(start,end).value = df_data, но я не совсем уверен, как сделать следующие шаги

1 Ответ

0 голосов
/ 17 января 2020

Что вы хотите сделать, это прочитать диапазон из Excel в кадр данных на

xl_df = pd.DataFrame(in_sht.range('A2:B10').value)

В зависимости от существующего кадра данных, с которым вы хотите сравнить значения, вам может потребоваться переименовать столбцы этого dataframe.

Тогда вам, вероятно, понадобится выполнить левое соединение на Excel-datafram с Python -dataframe.

new_df = xl_df.merge(py_df, on=0, how='left').drop(columns=['1_x'])

Приведенный выше код объединяется в первом столбце каждого dataframe и удаляет процентные значения из xl_df (набор данных x). Вместо этого вам следует рассмотреть возможность объединения столбцов по имени столбца.

Затем вы можете переопределить данные в Excel с новым кадром данных на

sht_in.range('A2').value = new_df.values.tolist()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...