python 数据分组后看每组多少个_python groupby 分组后如何用每一组的值减去每一组的最小值?...

id case eid

1 0 0

3 0 1

4 0 2

7 0 3

9 0 4

11 0 5

2 1 0

5 1 1

6 1 2

8 1 3

10 1 4

12 1 5

数据如上。

bVbLfswdf = pd.read_csv("/content/test.csv")

plt.figure(figsize=(13,10), dpi= 80)

print(df)

sns.boxplot(x='case', y='id', data=df, notch=False)

def add_n_obs(df,group_col,y):

medians_dict = {grp[0]:grp[1][y].median() for grp in df.groupby(group_col)}

xticklabels = [x.get_text() for x in plt.gca().get_xticklabels()]

n_obs = df.groupby(group_col)[y].size().values

for (x, xticklabel), n_ob in zip(enumerate(xticklabels), n_obs):

plt.text(x, medians_dict[xticklabel]*1.01, "#obs : "+str(n_ob), horizontalalignment='center', fontdict={'size':14}, color='white')

add_n_obs(df,group_col='case',y='id')

plt.title('Box Plot of Highway Mileage by Vehicle Class', fontsize=22)

plt.ylim(10)

plt.show()

以上是原始代码。

请问在python中使用pandas从csv文件中读取数据并按照cid分组后,如何将id列各组的值减去所在分组的最小值?

比如现在已经分成了两组,

cid=0的一组id最小值为1,所以id列变为0,2,3,6,8,10;

cid=1的一组id最小值为2,所以id列变为0,3,4,6,8,10。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值