如何运行循环并在python中每次返回到不同的列表

时间:2018-03-14 01:45:41

标签: python pandas dataframe

我的数据如下

     Gene  Distance
0    A       18
1    B       16
2    C       58
3    D       45
4    E       34

如果两个基因的距离小于50,则应将它们组合在一起(列表中)如下

1 A,B
2 C,D,E

循环应该在B和C之间包含,因为它们之间的距离大于50.如何在循环和列表中多次创建这样的中断。

1 个答案:

答案 0 :(得分:1)

你可以使用groupby(应该比循环更快......)

df.Gene.groupby(df.Distance.gt(50).cumsum()).apply(list).str.join(',')
Out[347]: 
Distance
0      A,B
1    C,D,E
Name: Gene, dtype: object