簡體   English   中英

根據 if 條件合並和求和兩個 pandas 行

[英]Merge and sum two pandas rows based on if condition

我有一個巨大的 dataframe ,我只想merge only two rows in it based on if condition 下面是一個示例數據框,當我嘗試進行groupby sum時,其他行也會受到影響。

我只希望列jb_namegeneric得到merged and sum

    jb_name   jb_count
0   generic    10
1   generic1    2
2   generic    15
3   other      14

嘗試了以下,但正如我所說,它也會影響其他行

df = df.groupby(['jb_name'])['jb_count'].sum().reset_index()

我想要最終的df如下

    jb_name   jb_count
0   generic    25
1   generic1    2
3   other      14

利用:

mask = df['jb_name'] == 'generic'
df = df[mask].groupby('jb_name', as_index=False).sum().append(df[~mask], ignore_index=True)

或者,我們可以將索引設置為jb_name並在索引為genericlevel 0上使用sum

df = df.set_index('jb_name')
mask = (df.index == 'generic')
df1 = pd.concat([df[mask].sum(level=0), df[~mask]]).reset_index()

結果:

# print(df1)

    jb_name  jb_count
0   generic        25
1  generic1         2
2     other        14
#Bollean select, droupby as you sum the duplicated and append tthe no duplicates

m=df.jb_name=='generic'
df[m].groupby(by='jb_name', axis=0).sum().reset_index().append(df[~m])



jb_name  jb_count
0   generic        25
1  generic1         2
3     other        14

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM