一、Pandas常用数据结构
(1)Series
由一组数据以及一组与之对应的数据标签(即索引)组成。
可以通过pandas.Series来创建Series,每个Series可以看成是DataFrame的一个列。
(2)DataFrame
DtaFrame是pandas基本数据结构,类似数据库中表或者Excel中的表格数据格式。
DataFrame既有行索引,也有列索引,可以将其看成是多个Series构成的。
二、Series的创建及修改
a = pd.Series([1,2,3,45,23,15]) #创建一个Series
a = pd.Series([1,2,3,45,23,15],index=['a','b','c','d','e','f']) #创建一个Series,自定义行索引。
a = pd.Series(np.array([1,2,3,45,23,15]))
a = pd.Series({'北京':2.8,'上海':3.01,'广东':8.99,'江苏':8.59}) #利用字典创建一个Series,索引是字典的key。
a.values #调用Series的value属性,返回series的值,放在数组里。
a[0] = 6 #将索引为0的元素修改为6。
a.drop([1,2],inplace=True) #删除索引为1和2的元素,参数inplace为对原数据进行修改,否则返回视图。
series返回值:
只要数列中有一个是float类型的则返回的是float类型。
三、DataFrame类
(1)DataFrame的创建
①a = [[1,2,3],[4,5,6],[7,8,9]] #列表格式的创建,注意列表添加的是每行的内容。
dfa = pd.DataFrame(a,columns=[‘列一’,‘列二’,‘列三’])
②dfb = pd.DataFrame({‘列一’:[1,4,7],‘列二’:[2,5,8],‘列三’:[3,6,9]}) #字典格式的创建,注意value添加的是每列的内容。
③c = np.array([[1,2,3],[4,5,6],[7,8,9]]) #数组格式的创建,注意相当于嵌套列表添加的是每行的内容。
dfc = pd.DataFrame(c,columns=[‘列一’,‘列二’,‘列三’])
(2)DataFrame的常用属性
df.values #以数组的形式返回表中的值。
df.shape #返回表的形状。
df.dtypes #返回每列的数据类型。
df.columns #返回表的列名,也可存在列表中df.columns.tolist()。
df.index #返回表的索引名,也可存在列表中df.index.tolist()。
df.size #查看总共有多少元素
(3)DataFrame数据的获取与保存
df = pd.read_csv(r'D:\Anaconda\Work_file\test_data.csv',encoding='gbk',dtype={'列五':str,'列六':str})
df = pd.read_excel(r'D:\Anaconda\Work_file\test_data.xlsx',sheet_name='Sheet1') #工作簿的下标从0开始
df.head(5) #查看数据前5行
df.tail(5) #查看数据后5行
df.to_csv('new_save_data.csv',index=False,encoding='utf-8') #默认保存在当前的工作路径下。
df.to_excel('new_save_data.xlsx',index=False,encoding='utf-8')
(4)将Excel所有工作簿读到一个DataFrame中
data_all = pd.DataFrame()
sheet_name = ['Sheet' + str(i) for i in range(1,4)]
for i in sheet_name:
data = pd.read_excel(r'D:\Anaconda\Work_file\test_data.xlsx',sheet_name=i,dtype={'列六':str})
data_all = pd.concat([data_all,data],axis=0,ignore_index=True)
data_all