我有一个装载CSV的数据文件。csv是这样的:
PROFIT STRING
16 A_B_C_D
3 A_D_C
-4 A_D_C
20 A_X_C
10 A_F_S利润是浮动的,字符串是字符的列表。下划线"_“分隔它们,因此A_B_C_D将分别为A、B、C和D。
我想看一下按性格划分的利润分配。
例:
总利润= 16+3-4+20+10 = 45
平均数= xxx
中位数=y
B:
总利润= 16+3 = 19
平均=.
这能用熊猫来做吗?如果是的话,怎么做?
发布于 2022-05-17 14:43:28
Split和explode按列STRING,然后在列PROFIT上执行groupby + agg
df.assign(STRING=df['STRING'].str.split('_'))\
.explode('STRING').groupby('STRING')['PROFIT'].agg(['sum', 'mean', 'median']) sum mean median
STRING
A 45 9.00 10.0
B 16 16.00 16.0
C 35 8.75 9.5
D 15 5.00 3.0
F 10 10.00 10.0
S 10 10.00 10.0
X 20 20.00 20.0https://stackoverflow.com/questions/72275973
复制相似问题