Python之pandas基础
1.pandas简介:
panel data analysis(多维数据分析)
pandas 中具有两种基本的数据存储结构,存储一维 values 的 Series 和存储二维 values 的 DataFrame;
Series:
Series 一般由四个部分组成,分别是序列的值 data 、索引 index 、存储类型 dtype 、序列的名字 name 。其中,索引也可以指定它的名字,默认为空
dtype = 'object’类型,代表了一种混合类型
DataFrame :
在 Series 的基础上增加了列索引,一个数据框可以由二维的 data 与行列索引来构造:值 data由一维变成了二维,加了一个参数columns,给出了列名
2.读取Excel
import pandas as pd
df = pd.read_excel('demo.xlsx')
# 前20行
df.head(10)
# 后20行
df.tail(10)
3.写入Excel
df = pd.DataFrame({
'A':range(10,20),
'B':range(20,30),
'C':range(30,40),
})
with pd.ExcelWriter('./数据表/output.xlsx') as f:
df.to_excel(f, index= False)
with open('./数据表/output.csv', 'w', newline = '') as f:
df.to_csv(f, index= False)
4.数据类型:Series
import pandas as pd
df = pd.read_excel('./数据表/demo.xlsx')
df.columns
type(df['区县'])
df['区县']
df.区县
# 查看序号
df['区县'].index
# 获取值
df['基站IP'].values
# 修改index
df['区县'].index = range(100,151)
df['区县'].index
# 去重
df['区县'].unique()
# 去重
df['区县'].drop_duplicates()
# 查看数据描述
df['区县'].describe()
# 统计数量
df['区县'].value_counts()
# 排序
df['区县'].sort_values()
5.数据类型:DataFrame
# 表格的形状
df.shape
# 表格的列
df.columns
# 表格的行号
df.index
# 获取某一列的值
df['对应中文名称']
# 查看表格全部数据
df.values
# 注意数据是一列一列显示的
df.describe()
df.drop_duplicates(['厂家'], keep= 'first')
df.备注
df.fillna(0, inplace = True)
df.备注
# 选择行
df[5:10]
# 选择列
df[['区县', '基站名', '对应中文名称']]
# 选择指定行或者列(按列名)
df.loc[10:20,['基站名', '对应中文名称']]
# 选择指定行或者列(按列名)
df.loc[10:20,'区县':'对应中文名称']
# 选择指定行或者列(按序号)
df.iloc[10:20,0:3]
# 跨行选择
df.iloc[[1,3,5,7],[1,3]]
iloc[行索引,列索引](不接受列字段名称作为参数,只支持列字段的位置索引作为参数)
loc[行索引,列名/column](接受具体名称)
6.常用操作
# 拆分表格
df_entry = pd.read_excel('./数据表/报名表.xlsx')
df_entry.columns
# 按所属单位拆分表格
for city in df_entry['所属单位(必填)只到州市'].unique():
df_tmp = df_entry[df_entry['所属单位(必填)只到州市']==city]
with pd.ExcelWriter('./数据表/州市/' + city + '.xlsx') as f:
df_tmp.to_excel(f, index =False)
# 合并表格
import os
files = os.listdir('./数据表/州市/')
res = []
for file in files:
df_tmp = pd.read_excel('./数据表/州市/' + file)
res.append(df_tmp)
df_res = pd.concat(res, axis = 0)
with pd.ExcelWriter('./数据表/_全省汇总.xlsx') as f:
df_res.to_excel(f, index= False)
pandas 中loc函数的意思及用法,及跟iloc的区别
loc和iloc的意思:首先,loc是location的意思,和iloc中i的意思是指integer,所以它只接受整数作为参数。
df.loc[0, :],这样可以清楚的看出为第0行的所有记录
:表示所有,[]里边为先行后列
若要取第一列的所有数据,df.iloc[:, 0]