根据列的分布将pandas数据帧拆分为多个数据帧

时间:2017-05-17 10:03:32

标签: python pandas dataframe split distribution

更改了问题和图片(正如我之前所说的那样......复杂:)

I added a "picture" to describe what I want.

我有一个熊猫数据框' df'有一个列'得分' (浮点值)与分布(假设正态分布)。我还有一个整数'分裂' (比方说3)和一个浮点数' gap' (比方说0.5)。

我想有两个数据帧' gaps_df'和' rest_df'。 ' gaps_df'应该包含来自df的所有条目,这些条目在图片中标记为橙色(每两条红线都有距离' gap')。 ' rest_df'包含所有标记为绿色的条目。

这是一个棘手的部分:绿色区域必须具有相同的大小!

要明确:

  • 绿色区域必须具有相同数量的条目!
  • ORANGE区域必须包含绿色区域之间的差距范围内的条目(数量无关紧要)

到目前为止,我有以下内容:

df.sort('score')
df = df.reset_index(drop=True)
split_markers = []
for marker_index in range(1, classes):
    split_markers.append(marker_index * df.size/classes)

但最后两行是错误的,因为他们将整个区域分成等量的条目。通过正态分布,我可以将标记向左和向右移动0.5 *间隙。但事实上:我没有正常的分布(这只是为了快速创建一个具有相同绿色区域的图片)。

它吓坏了我。我非常感谢你能给予的每一个帮助!也许有一种更简单的解决方案...

0 个答案:

没有答案