根据列合并重复项?

Com*_*low 4 python grouping pandas

这是我的情况 -

In[9]: df
Out[9]: 
    fruit  val1  val2
0  Orange     1     1
1  orANGE     2     2
2   apple     3     3
3   APPLE     4     4
4   mango     5     5
5   appLE     6     6

In[10]: type(df)
Out[10]: pandas.core.frame.DataFrame
Run Code Online (Sandbox Code Playgroud)

如何删除不区分大小写的重复,从而导致fruit将与所有低val1,因为每个的总和val1S和val2为每个总和val2s ^

预期结果:

  fruit    val1 val2
0 orange    3    3
1 apple     13   13
2 mango     5    5 
Run Code Online (Sandbox Code Playgroud)

Jus*_*tin 8

分两步:

df['fruit'] = df['fruit'].map(lambda x: x.lower())

res = df.groupby('fruit').sum()

res    
#         val1  val2
# fruit             
# apple     13    13
# mango      5     5
# orange     3     3
Run Code Online (Sandbox Code Playgroud)

并恢复你的结构:

res.reset_index()
Run Code Online (Sandbox Code Playgroud)

根据评论,下壳可以更直接的方式完成,如下所示:

df['fruit'] = df['fruit'].str.lower()
Run Code Online (Sandbox Code Playgroud)