2017-06-22 90 views
1

我正在使用group by apply和在函数中apply我正在创建一个csv。然而,因为我在某处读到groupby被多次评估,我得到的是同一个数据的多个csvs。我如何阻止这种情况发生?Pandas Groupby申请被多次评估

alerts = evening_data.groupby([identification, name, age, 
             address]).apply(master, args='F').reset_index(drop=True) 

def master(data, f): 
    data.to_csv('test.csv') 

我有时会得到两个test.csv文件。 othertimes不是。

+0

欺骗:https://stackoverflow.com/questions/21390035/python- pandas-groupby-object-apply-method-duplicates-first-group这是设计。你真的想在这里做什么?您似乎只是对df进行排序,然后将这些组写入csv。 – EdChum

+0

您可以尝试分离更改的定义,然后应用该函数而不是并置两者。 – AaronDT

+0

我在这些功能中做了很多,但我把它们带走了,所以我可以解决这个问题 – CodeGeek123

回答

0

我相信这是可能的用途:

for i, d in evening_data.groupby([identification, name, age,address]): 
    master(d, 'F') 

而且是不错的改变文件名的团体 - 是这样的:

def master(data, f): 
    name = '{0[0]}{0[1]}{0[2]}{0[3]}'.format(data.index[0]) + '_test.csv' 
    file_path = os.path.join(os.pardir, name) 
    data.to_csv(file_path)