Pandas:通过某些列对数据集进行分层并保存每个分区的最佳方法是什么?

时间:2014-03-28 01:56:48

标签: python pandas

什么比

更好
grouped = df.groupby('A', sort=False)
for name, group in grouped:
    filename = name + '.csv' 
    del group['A']
    group.to_csv(filename, index=False)

我只是想提高我的Python / Pandas技能。

1 个答案:

答案 0 :(得分:0)

这个解决方案对我来说很好看。 另一种方法是使用列表推导来生成名称,数据框元组然后可以迭代并保存:

import pandas as pd
import random

#Create some random data
DF = pd.DataFrame({'A': [random.randint(1, 10) for x in xrange(200)], \
                   'Data' : [random.random() for x in xrange(200)]})

#Create list of tuples where first element in each tuple is the name of the group
#and the second element is a data frame containing the data relating to that group. 

segments = [(group[0], pd.DataFrame(group[1])) for group in DF.groupby('A', sort = False)]

然后你可以迭代分段来保存,或浏览它们,或者你真正想要的任何东西......列表理解可以为你节省一些代码,但我不确定它是否比你的更好这样做。