按变量分组,排序和打印另一列中的值

时间:2019-06-27 21:51:58

标签: python pandas pandas-groupby

我有一个像这样的数据框:

allNodeArticle.forEach()

对于每个主题,我想打印一个包含每个距离的起点的csv。并且发作将以升序排序。例如,file_Subject101_Distance1.csv看起来像:

df = pd.DataFrame({'Subject': [101,101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,102],
                   'Accuracy': [2, 0, 0, 0,4,4,6,4,3,3,3,6,6,6,4,3,2,7],
                   'Distance': [1,1,1,2,2,2,3,3,3,1,1,1,2,2,2,3,3,3],
                   'Onset': [1,7,8,9,1,5,5,3,2,6,7,8,9,5,4,3,2,4]})

file_Subject101_Distance2.csv为:

1 7 8

(因为它们将被排序),依此类推。我可以对熊猫进行排序,并使用过“ groupby”,但不了解如何一起使用它们来做我想做的事情(或者即使那是最好的方法)。

1 个答案:

答案 0 :(得分:3)

IIUC

for (s, d), g in df.groupby(['Subject', 'Distance']).Onset:
    with open(f"file_Subject{s}_Distance{d}.csv", mode='w') as fh:
        fh.write(" ".join(g.sort_values().astype(str)))