#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Я пытаюсь добавить серию списков к их соответствующим фреймам данных, но это не будет работать в функции. Я не совсем уверен, почему это не сработает, поскольку я могу заставить его работать вне функции. Тем не менее, я хочу поместить все это в одну функцию, чтобы она была более чистой и могла быть вызвана позже.
def append_to_df(list_object):
i=0
for list in list_object:
current_df=df_list[i]
current_df=current_df.append(list, ignore_index=True)
#current_df=current_df.drop_duplicates(ignore_index=True, keep=False)
i =1
return None
Когда я вызываю функцию, я даю ей список из 30 списков, содержащих данные, которые я хочу добавить к 30 фреймам данных, которые у меня есть в соответствующем df_list. Однако после вызова функции все фреймы данных по-прежнему пусты. Я полагаю, что это может быть простой концептуальной проблемой с функциями, кто-нибудь может сказать мне, почему добавление фрейма данных работает вне моей функции, но не внутри?
Спасибо
Комментарии:
1. вы пробовали
df_list[i] = df_list[i].append(append(list, ignore_index=True)
?2. Это относится к пространствам имен python, в вашей функции current_df переназначается и не влияет на переменную df_list вне функции.
3.
df_list[i] = df_list[i].append(alist, ignore_index=True)
может быть работа, потому что df_list находится в пространстве имен globle. Это означает, что вы манипулируетеdf_list
внутри функции, и это работает.
Ответ №1:
Пожалуйста, не используйте «список», который может привести к неизвестным проблемам / результатам:
Используйте это:
def append_to_df(list_object):
for i, lst in enumerate(list_object):
df_list[i] = df_list[i].append(lst, ignore_index=True)