我想通过保留具有最高值的项来删除数据集中的重复项。现在我用的是熊猫:
c_maxes = hospProfiling.groupby(['Hospital_ID', 'District_ID'], group_keys=False)\
.apply(lambda x: x.ix[x['Hospital_employees'].idxmax()])
print c_maxes
c_maxes.to_csv('data/external/HospitalProfilingMaxes.csv')
这样做会导致初始数据集:Hospital_ID,District_ID,Hospital_employees
变成{
正在复制用于分组的列。这里有什么错误?在
编辑:
在使用groupby()函数时,将在数据开头添加一个额外的列。列没有名称,它只是所有行的序列号。这里的第二个问题就是答案。我想删除这个额外的专栏,因为我不需要它。我试过了:
hospProfiling.drop(hospProfiling.columns[0], axis=1)
此代码不会删除列。如何才能将其移除?在
我认为你需要:
我对另一个答案感到非常惊讶,我做了一些研究,如果函数^{} 是否无用:
样品:
^{pr2}$主要区别在于如何处理另一列,如果使用}:
max
它将返回每列的最大值-这里是Hospital_employees
和{函数
idxmax
返回另一列中最大值的索引:然后您只需按^{} 选择
DataFrame
:为什么不使用groupby
max
方法?在如果您碰巧有三列以上的列,请将max替换为agg:
^{pr2}$相关问题 更多 >
编程相关推荐