Python 通过删除列进行分组

Python 通过删除列进行分组,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我正在做一个简单的分组操作,试图比较分组的方式。正如您在下面看到的,我从一个更大的数据框中选择了特定的列,从中删除了所有缺少的值 但当我分组时,我丢失了几个专栏: 我从未在pandas中遇到过这种情况,我也没有在堆栈溢出中发现任何其他类似的情况。有人有什么见解吗?我认为这是自动排除“讨厌的”列,所描述的内容 样本: df = pd.DataFrame({'C': {0: -0.91985400000000006, 1: -0.042379, 2: 1.2476419999999999, 3:

我正在做一个简单的分组操作,试图比较分组的方式。正如您在下面看到的,我从一个更大的数据框中选择了特定的列,从中删除了所有缺少的值

但当我分组时,我丢失了几个专栏:


我从未在pandas中遇到过这种情况,我也没有在堆栈溢出中发现任何其他类似的情况。有人有什么见解吗?

我认为这是
自动排除“讨厌的”列
,所描述的内容

样本:

df = pd.DataFrame({'C': {0: -0.91985400000000006, 1: -0.042379, 2: 1.2476419999999999, 3: -0.00992, 4: 0.290213, 5: 0.49576700000000001, 6: 0.36294899999999997, 7: 1.548106}, 'A': {0: 'foo', 1: 'bar', 2: 'foo', 3: 'bar', 4: 'foo', 5: 'bar', 6: 'foo', 7: 'foo'}, 'B': {0: 'one', 1: 'one', 2: 'two', 3: 'three', 4: 'two', 5: 'two', 6: 'one', 7: 'three'}, 'D': {0: -1.131345, 1: -0.089328999999999992, 2: 0.33786300000000002, 3: -0.94586700000000001, 4: -0.93213199999999996, 5: 1.9560299999999999, 6: 0.017587000000000002, 7: -0.016691999999999999}})
我想你可以检查一下。

试试
df.groupby(['col\u 1','col\u 2'],as\u index=False)。mean()

使用
as_index=False
保留列名。默认值为True。以上评论回答了这个问题,但作为答案发布。

请确保您的列是数字/int格式,而不是对象格式的“O”。 这是我无法理解的一个原因

您可以通过以下代码检查列的格式:

df.column.dtypes

@耶斯雷尔。有没有办法阻止这一切?所以旧的标题仍然在顶部?@spacedustpi-你认为
df.groupby('A',as_index=False).mean()
df.groupby('A').mean().reset_index()
?这是mycode:df1=df.groupby(['ORGNTR_NM','ORGNTR_BNK_NM','BNFCRY_BNK_NM','BNFCRY_NM','BNFCRY_NM','BNFCRY_NM','BNFCRY=False]),as_index=False)['TRNSXN\u AMT'])。agg(['sum','sum','sum'])。结果是这四个原始列不再是列,而“sum”和“count”是列,它们位于旧列之上。我希望他们都是头球,就是这样!谢谢。那会更容易些。最后我做了
df.mycols.fillna(“”)
,分组,然后
df.problem\u col.replace(“^;|$”,“”)
df.column.dtypes