Pandas 对除选定行以外的所有行进行分组
我试图做一些选择分组和求和,但不断收到错误消息,显然这都是错误的。我想对所有行进行分组,除了少数行,然后对主组进行求和。基本上,我想做一个饼图,显示几个切片,主组为“其他”。提前谢谢Pandas 对除选定行以外的所有行进行分组,pandas,Pandas,我试图做一些选择分组和求和,但不断收到错误消息,显然这都是错误的。我想对所有行进行分组,除了少数行,然后对主组进行求和。基本上,我想做一个饼图,显示几个切片,主组为“其他”。提前谢谢 d = {'symbol': ['a', 'b', 'c', 'd', 'e', 'f', 'g'], 'value': [5, 5, 5, 5, 1, 1, 1]} df = pd.DataFrame(data=d) display(df) 输出: symbol value 0 a 5
d = {'symbol': ['a', 'b', 'c', 'd', 'e', 'f', 'g'], 'value': [5, 5, 5, 5, 1, 1, 1]}
df = pd.DataFrame(data=d)
display(df)
输出:
symbol value
0 a 5
1 b 5
2 c 5
3 d 5
4 e 1
5 f 1
6 g 1
e 1
f 1
g 1
rest 20
Name: value, dtype: int64
预期结果:
symbol value
0 rest 20
4 e 1
5 f 1
6 g 1
这是一种正确的方法吗
def not_in_group(sym):
if (sym != 'e' or sym != 'f' or sym != 'g' in df['symbol']):
return sym
grouped = df.groupby(not_in_group, axis=1)('value').sum()
display(grouped)
您可以使用
isin
和np。其中
映射符号:
mapped_symbols = np.where(df.symbol.isin(main_groups), df.symbol, 'rest')
df['value'].groupby(mapped_symbols).sum()
输出:
symbol value
0 a 5
1 b 5
2 c 5
3 d 5
4 e 1
5 f 1
6 g 1
e 1
f 1
g 1
rest 20
Name: value, dtype: int64