2014-01-06 186 views
4

這裏是我的情況 -基於列合併重複?

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 

如何刪除不區分大小寫的重複,從而導致fruit將全部下與val1每個val1 S的總和val2每個val2小號

預期結果的總和:

fruit val1 val2 
0 orange 3 3 
1 apple  13 13 
2 mango  5 5 

回答

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 

,並收回你的結構:

res.reset_index() 

按照註釋,下外殼可以以更直接的方式來完成這樣的:

df['fruit'] = df['fruit'].str.lower() 
+0

真棒!謝謝! – ComputerFellow

+1

而不是'map',你可以在這裏使用'df ['fruit']。str.lower()'。 – DSM

+0

@DSM你每天都會學到新的東西!謝謝。 – Justin