我的目标是将n记录按4分组,例如:
0-3
4-7
8-11
etc.根据其他列中的一列,找到每组4个的csv值,并创建一个新的数据集或max()文件。max()操作将在一列上执行,而其他列保持不变。
基于我在这里所做的研究(Stackoverflow),我尝试在我的数据集上自定义和应用以下解决方案,但它没有给我带来期望:
# Group by every 4 row until the len(dataset)
groups = dataset.groupby(pd.cut(dataset.index, range(0,len(dataset),3))
needataset = groups.max()我得到了类似如下的结果:
Column 1 Column 2 ... Column n
0. (0,3]
1. (3,6]max()操作的目标列也没有产生预期的结果。我将感谢任何关于解决这个问题的指导。
发布于 2018-05-26 07:07:11
这个例子应该会对你有所帮助。在这里,我使用步骤5创建了一个介于0和100之间的随机值的DataFrame,并将这些值分组为4个一组(sort_values非常重要,它会让您的工作更轻松)
df = pd.DataFrame({'value': np.random.randint(0, 100, 5)})
df = df.sort_values(by='value')
labels = ["{0} - {1}".format(i, i + 4) for i in range(0, 100, 5)]
df['group'] = pd.cut(df.value, range(0, 105, 5), right=False, labels=labels)
groups = df["group"].unique()然后为最大值创建一个数组
max_vals = np.zeros((len(groups)))
for i, group in enumerate(groups):
max_vals[i] = max(df[df["group"] == group]["value"])然后从这些最大值中找出一个DataFrame
pd.DataFrame({"group": groups, "max value": max_vals})https://stackoverflow.com/questions/50537527
复制相似问题