熊猫-将数据从一个数据框追加到

时间:2018-12-21 07:13:35

标签: pandas dataframe append

我有一个数据框(称为df),其中包含在给定日期工作的票证列表。我有一个脚本,每天都会运行一个生成该df的脚本,我希望有一个新的主数据框(让我们说df_master),它将新的df值附加到新的数据框上。因此,无论何时我查看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 :(得分:2)

我认为您需要向concat传递序列,显然使用了list

  

objs :Series,DataFrame或Panel对象的序列或映射

     

如果传递了dict,则排序的键将用作keys参数,除非传递该键,否则将选择值(请参见下文)。除非所有对象都为None,否则所有None对象都将被静默删除,在这种情况下将引发ValueError

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

似乎您只通过了Series,所以引发了错误:

df = pd.concat(s)

对于插入日期,可以设置pd.Timestamp('now').normalize(),对于主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)