pandas備忘(二)

關於pandas的透視表的用法

import pandas as pd 
import numpy as np 

df = pd.DataFrame({'ID':['01','02','01','03','01'],
	"code":['A','A','B','C','D'],
	'descrit':['一號','二號','三號','四號','五號'],
	'score':[85,76,80,56,90]})
print(df)

df= pd.pivot_table(df,index=['ID','code','descrit'])
print(df)
#如果想要數據展現的更好看
#df.reindex()#重置索引
#df.sort_values('code')

在這裏插入圖片描述

合理運用pandas的series運算,可以解決一些小問題(雙字段聯合去重)。應該pandas是由內置的方法的,搜了一大圈,並未找到。下面上一段代碼來就解決這個問題。

import pandas as pd
import numpy as np 
df1 = pd.DataFrame({'id':list('ABCDEF'),"nus":list(range(6)),'ids':['A01','B01','C01','D01','E01','F01']})
df1.loc['6',['id','nus','ids'] ]=[ 'A',7.0,'A02']#增加一列特殊情況
df2 = pd.DataFrame({'id':list('GHCDEB'),"nus":list(range(6)),'ids':['A01','B01','C01','D01','E01','A02']})
df1['res'] = df1['id'] + df1['ids']
df2['res'] = df2['id'] + df2['ids']
df2['cmps'] = df2['res'].isin(df1['res'])#進行單列查找即可
df2.drop('res',axis=1,inplace = True)#刪除掉臨時列


在這裏插入圖片描述
達到預期效果
關於某些列的bool值也可以批量帥選,這裏直接貼上代碼。

df.loc[df['A'] == True, 'A'] = 1
#意思試把A列值爲True的元素,重新賦值爲1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章