Панды - добавление данных из одного Датафрейма в - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть датафрейм (называемый df), в котором есть список заявок, отработанных на определенную дату.У меня есть скрипт, который запускается каждый день, когда генерируется этот df, и я хотел бы иметь новый главный фрейм данных (скажем, df_master), который добавляет значения из df в новый Dataframe.Поэтому в любое время, когда я просматриваю df_master, я должен видеть, что все билеты работали за несколько дней.Также хотелось бы иметь новый столбец в df_master, который показывает дату, когда строка была вставлена.

Ниже приведено, как выглядит df:

1001
1002
1003
1004

Я пытался выполнить concat, новыдает ошибку

TypeError: first argument must be an iterable of pandas objects, you passed an object of type "Series"

Обновление

df_ticket = tickets['ticket']
df_master = df_ticket
df_master['Date'] = pd.Timestamp('now').normalize()
L = [df_master,tickets] 
master_df = pd.concat(L)
master_df.to_csv('file.csv', mode='a', header=False, index=False)

1 Ответ

0 голосов
/ 21 декабря 2018

Я думаю, вам нужно передать последовательность concat, очевидно, используется list:

objs : последовательность или отображение серииОбъекты DataFrame или Panel

Если передан dict, отсортированные ключи будут использоваться в качестве аргумента keys, если только он не передан, и в этом случае будут выбраны значения (см. Ниже).Любые объекты None будут отброшены без уведомления, если только они не равны None. В этом случае ValueError будет повышен

L = [s1,s2] 
df = pd.concat(L)

И, кажется, вы передаете только Series, поэтому возникла ошибка:

df = pd.concat(s)

Для вставки столбца Дата можно установить pd.Timestamp('now').normalize(), для master df я предлагаю создать один файл и добавлять каждый день. DataFrame:

df_ticket = tickets[['ticket']]
df_ticket['Date'] = pd.Timestamp('now').normalize()
df_ticket.to_csv('file.csv', mode='a', header=False, index=False)

df_master = pd.read_csv('file.csv',  header=None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...