python groupby:用于分组的drop列
我有一个数据帧python groupby:用于分组的drop列,python,pandas-groupby,Python,Pandas Groupby,我有一个数据帧 print(my_df) A B C 0 1 20 0.1 1 1 30 0.2 2 1 40 0.3 3 2 200 0.7 4 2 300 0.8 5 2 400 0.9 我按列“A”分组 grouped = my_df.groupby('A') 我将其转换为一个列表: grouped.apply(pd.Series.tolist) A 1 [[1.0, 20.0, 0.1], [1.0, 30.0, 0
print(my_df)
A B C
0 1 20 0.1
1 1 30 0.2
2 1 40 0.3
3 2 200 0.7
4 2 300 0.8
5 2 400 0.9
我按列“A”分组
grouped = my_df.groupby('A')
我将其转换为一个列表:
grouped.apply(pd.Series.tolist)
A
1 [[1.0, 20.0, 0.1], [1.0, 30.0, 0.2], [1.0, 40....
2 [[2.0, 200.0, 0.7], [2.0, 300.0, 0.8], [2.0, 4...
但是,我想去掉现在多余的列“A”值,以便
A
1 [[20.0, 0.1], [30.0, 0.2], [40....
2 [[200.0, 0.7], [300.0, 0.8], [4...
分组对象包含所有三列:
grouped.obj.columns
Index(['A', 'B', 'C'], dtype='object')
但我不能放弃任何一个:
grouped.drop('A')
AttributeError: Cannot access callable attribute 'drop' of 'DataFrameGroupBy' objects, try using the 'apply' method
如何使用drop和apply
grouped.apply(pd.DataFrame.drop( ???
多谢各位
编辑:
更具体地说,我正在做
grouped.apply(pd.Series.tolist).tolist()
有了这个,我获得了
[[[1.0, 20.0, 0.1], [1.0, 30.0, 0.2], [1.0, 40.0, 0.3]], [[2.0, 200.0, 0.7], [2.0, 300.0, 0.8], [2.0, 400.0, 0.9]]]
但是我想
[[[20.0, 0.1], [30.0, 0.2], [40.0, 0.3]], [[200.0, 0.7], [300.0, 0.8], [400.0, 0.9]]]
请尝试以下代码,希望这会有所帮助:
df.set_index('A',inplace=True)
df.groupby('A').apply(pd.Series.tolist)
输出将是:
A
1 [[20.0, 0.1], [30.0, 0.2], [40.0, 0.3]]
2 [[200.0, 0.7], [300.0, 0.8], [400.0, 0.9]]
dtype: object
你能提供你想要的样本输出吗?当然,我刚刚编辑了我的帖子,以澄清我想要的输出和我目前没有DROP的输出。我已经添加了答案,请检查