pandas库笔记

2019-08-18  本文已影响0人  非鱼2018

1.系列Series
2.数据帧dataFrame
3.分组groupby
4.dataframe生成html以及excel

#codeing=utf-8
import pandas as pd
import numpy as np

#1.系列(Series)
#通过列表创建系列
list1=[1,2,3,4,5]
data=np.array(['a','b','c','d'])
s=pd.Series(list1)
#指定索引,默认索引是从0开始
s2=pd.Series(data,index=[1,2,3,4])

#通过字典创建系列
data2= {'a' : 0.,'b' : 1.,'c' : 2.}
s3=pd.Series(data2)

#常量创建
s4=pd.Series(1,index=[1,2,3,4])
#读取系列
print(s)
print(s3)
print(s4)
print(s4[1:])

#2数据帧(dataframe)

df=pd.DataFrame()
data= [1,2,3,4,5]
df= pd.DataFrame(data,index=[1,2,3,4,5],columns=['name'])
data= [['zs',10],['ls',12],['ww',13]]
df= pd.DataFrame(data,columns=['Name','Age'],dtype=float)

#比较常用的创建方法(name、age为列)

data= {'Name':['Tom','Jack','Steve','Ricky'],'Age':[28,34,29,42]}
df= pd.DataFrame(data,index=['rank1','rank2','rank3','rank4'])
print(df)

#通过字典列表
data= [{'a': 1,'b': 2},{'a': 5,'b': 10,'c': 20}]
df= pd.DataFrame(data)


#从系列的字典来创建DataFrame
d= {'one' : pd.Series([1,2,3],index=['a','b','c']),
'two' : pd.Series([1,2,3,4],index=['a','b','c','d'])}
df= pd.DataFrame(d)

#3.合并行,使用groupby分组函数,再对其余列进行处理,再进行重建索引
#如果分组后还有多个列处理,可分别处理后,再使用merge合并
#group by经常用于数据分组求和求平均等等,

data= {'card': ['home','home','home','add-card','add-card'],
'app_name': ['channel','channel','channel','IT','IT'],
'page':['channel1','channel2','channel3','IT1','IT2'],
'url':['url1','url2','url3','url4','url5']

}
df= pd.DataFrame(data)
#增加一列
#df['full_url']=df.apply(lambda x: str(x['app_name']) +'|' +str(x['page']),axis=1)
df1= df.groupby(['card','app_name'])['url'].apply(lambda x: ','.join(x)).reset_index()
df2= df.groupby(['card','app_name'])['page'].apply(lambda x: ','.join(x)).reset_index()
pd3=pd.merge(df1,df2)
print(pd3)

#4使用pandas生成excel和html非常方便
df.to_html('report.html',index=False)
df.to_excel("output.xlsx",sheet_name='SHEET1')

</pre>

上一篇下一篇

猜你喜欢

热点阅读