python - 为什么 pandas groupby 在数据框中添加额外的 (groupby_info) 列以及如何删除它们?

标签 python python-2.7 pandas

我有 4 列的数据框 df_M,并按 '蛋白质' 分组并按 '[M]' 排序。

df_M = df_M[['protein', 'cl', 'pept', '[M]']]
df_M = df_M.groupby('protein').apply(pd.DataFrame.sort_values, '[M]')

结果前面有两列,分别是'蛋白质'index的复制?如何在不获取这些列的情况下进行分组和排序?

最佳答案

我认为您不需要groupby,而是需要按sort_values按两列sort :

df_M = df_M.sort_values(['protein','[M]'])

但如果想使用groupby添加参数group_keys=False:

group_keys : boolean, default True

When calling apply, add group keys to index to identify pieces

df_M = df_M.groupby('protein', group_keys=False).apply(pd.DataFrame.sort_values, '[M]')

示例:

df_M = pd.DataFrame({'protein':list('ababba'),
                    '[M]':[2,3,5,8,0,6],
                    'cl':[1,2,3,4,5,6]})

print (df_M)
   [M]  cl protein
0    2   1       a
1    3   2       b
2    5   3       a
3    8   4       b
4    0   5       b
5    6   6       a

df_M = df_M.sort_values(['protein','[M]'])

#df_M = df_M.groupby('protein', group_keys=False).apply(pd.DataFrame.sort_values, '[M]')

print (df_M)
   [M]  cl protein
0    2   1       a
2    5   3       a
5    6   6       a
4    0   5       b
1    3   2       b
3    8   4       b

关于python - 为什么 pandas groupby 在数据框中添加额外的 (groupby_info) 列以及如何删除它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47388083/

相关文章:

python - 如何从现有字典中有选择地创建字典?

python - 当详细信息肯定在数据库中时,验证电子邮件和散列密码总是返回 None

python - list(file) 附加\n到每一行

python - 在 Python 2.7 "The character encoding of the plain text document was not declared. "中获取错误

python - 如果一行不存在,请在 Python 中相应地检查并赋予一个值

javascript - 如果该子字符串是数组的一部分,则替换该子字符串

Python:如何更新程序中的模块

python - 如何使用pandas DataFrame构建器的函数from_records强制数据类型?

python使用默认函数聚合groupby

python - 重复数组的每个值不同的时间