как присвоить значение определенному индексу в панд

#python #pandas #dataframe #numpy

Вопрос:

Я хотел бы присвоить значение определенному индексу вновь созданного фрейма данных. Проведенный анализ был:

 merged_YTD_df = []
for i in range(len(dfs) -1):
merged_YTD_df.append(pd.merge(dfs[2].drop_duplicates(), dfs[-1].drop_duplicates(), on= 
             ['email','country'], how='left', indicator=True))
for i in range(len(merged_YTD_df)):
merged_YTD_df[i]=merged_YTD_df[i][merged_YTD_df[i]['_merge'] == 'left_only']
 

затем создайте новый фрейм данных для заполнения значения. Для того же, что я использовал:

 df = pd.DataFrame({
             "Date":[getDate(i) for i in tracker_files],
            "Emailable":[len(i.email.unique()) for i in dfs],
            "Lost_Fans":[merged_df[i-1].shape[0] if i > 0 else " " for i in range(len(merged_df)   1)],
            "New_Fans":[merged_new_df[i-1].shape[0] if i > 0 else " " for i in range(len(merged_new_df)   1)],
            "YTD_Lost_Fans":[merged_YTD_df[i 1].shape[0] if i > 0 else " " for i in range(len(merged_YTD_df)   1)],
            "Country":[getCountrySymbol(i) for i in tracker_files]
                })
 

результирующий фрейм данных, который я получил, используя приведенный выше код, выглядит так:

 Date    Emailable   Lost_Fans   New_Fans    YTD_Lost_Fans   Country
12-10-2020  121015                                            JP
06-11-2020  120740  346          71                45751      JP
18-12-2020  101746  19116        122               45751      JP
29-01-2021  105670  4983         8907              45751      JP
16-02-2021  115373  1229         10932             45751      JP
01-03-2021  115457  506          590               45751      JP
12-07-2021  137520  18041        40104             45751      JP
11-08-2021  134302  23744        20526             45751      JP
02-09-2021  130154  4340         192               45751      JP
 

ожидаемым результатом должно быть значение merged_YTD_df, которое должно быть последним индексом, равным 02-09-2021. таким образом, ожидаемый результат должен быть

 Date    Emailable   Lost_Fans   New_Fans    YTD_Lost_Fans   Country
12-10-2020  121015                                            JP
06-11-2020  120740  346          71                           JP
18-12-2020  101746  19116        122                          JP
29-01-2021  105670  4983         8907                         JP
16-02-2021  115373  1229         10932                        JP
01-03-2021  115457  506          590                          JP
12-07-2021  137520  18041        40104                        JP
11-08-2021  134302  23744        20526                        JP
02-09-2021  130154  4340         192               45751      JP
 

не знаю, что я делаю не так. Пожалуйста, поправьте меня, где я делаю что-то не так.

Комментарии:

1. Из ваших вопросов не совсем понятно, что вы имеете в виду, но вы можете использовать df.at[index, 'column_name'] = value для этого?