Python之pandas實現(xiàn)更復(fù)雜的Excel操作

◆?◆?◆ ?◆?◆
有人問了我一個這樣的問題,題目是:……。直接上圖吧~
import pandas as pddata = {'考試':['一模','二模','一模','二模','一模','二模'],'姓名':['張三','張三','李四','李四','王五','王五'],'語文':[78,75,68,72,80,82],'數(shù)學(xué)':[90,95,78,76,100,92],'英語':[85,82,78,76,86,93]}df = pd.DataFrame(data)df

#方法一#
# 一定要深刻體會groupby后加的字段的不同delta = df.groupby('姓名')['考試','語文','數(shù)學(xué)','英語'].last() - df.groupby('姓名')['語文','數(shù)學(xué)','英語'].first()#?重設(shè)索引,使姓名列恢復(fù)列字段delta.reset_index(inplace = True)#?填充為對比,滿足需求的每一個小細節(jié)delta.fillna('對比',inplace=True)#?輸出瞧一瞧delta

# 這種方式是可以設(shè)置ignore_index = Truedf.append(delta,ignore_index = True,sort = False).sort_values('姓名').reset_index(drop=True)

#方法二#
delta = df.groupby('姓名').diff().dropna()delta

3.2使用append添加結(jié)果進去
#?這種方式必須設(shè)置ignore_index?=?False,否則在索引排序時就會匹配不到結(jié)果df.append(delta,ignore_index = False,sort = False).sort_index().fillna({'考試':'對比'}).fillna(method = 'ffill')



送書:在看,點贊,分享朋友圈第一名即可獲得。
-- END --
更
多
精
彩
Python實現(xiàn)行轉(zhuǎn)列?!超簡單,趕快get起來

評論
圖片
表情
