python建立简单的人事管理系统(六)中

pandas生成

  • pandas是基于Numpy的开源数据分析工具,提供了快速,灵活,明确的数据结构【学过c就有了解,没学过那搜一下?不好赘述】,旨在简单,直观的处理关系型,标记型数据。
  • pandas中常用Series,DataFrame,Panel对应一维二维和三维,这里咱们用二维 

【在网上看到 pandas 读取写入excel时是通过read_excel,to_excel方法,需要xlrd库和xlwt库 而ExcelWrite方法需要openpyxl库;下载pandas前先下载了前三个,所以没法实验此需求的真假性,写到这的时候还没有安装前三个库的,可以验证一下,如果能告诉我就更好了】

DF的数据会有index和columns【行标签,列标签】,均默认从0开始

 df=pd.DataFrame(data=ayy,columns=title)#这里设置了columns,没有设置index,那么index就从0开始 ,看上图

df.to_excel(path,index=False)#to_excel写入excel,这里的index不是DF中的意思,是表示在生成的excel表中是否含有行标签【序号】

import pandas as pd
title=['工号','姓名','性别','出生','部门']
array1 = ['1', '许佳琪', '男', '19990824', "IS"]
array2 = ['2', 'c', '女', '19980615', 'CX']
array3 = ['3', '张鹏辉', '男', '19990621', 'II']
ayy = [array1, array2, array3]
path = 'D:\\A\\test-pandas.xlsx'

df=pd.DataFrame(data=ayy,columns=title)
# print(df)
df.to_excel(path,index=False)
print('创建|覆盖 成功')

打开生成的表时,在运行程序会报PermissionError: [Errno 13] Permission denied错误

pandas读取

data=pd.read_excel(path,sheet-name,header,usecols,names,)

  • path:路径
  • sheet-name:整数(>=0)或字符串,【0访问第一个sheet...】【字符串访问该名称的sheet】
  • header:空值或整数(>=0)【空值表示excel表中没有列表签】【将整数行作为列表签,该行之前不计入数据,header=0默认值】
  • usecols:空值或list[整数(columns>usecols>0)或字符串]【空值默认值显示所有列】【list类型的位置或者字符串标题】【设置该属性会标黄】
  • 当表内没有标题时,且header=None时,可以用names=['1','2',...]设置列标题【注意从最后一个元素对应最后一列】

# print('index属性值是:\n',data.index)#默认index为从0开始
# print('每列的标题:\n',data.columns)
# print('dtypes属性值是:\n',data.dtypes)#按列看
# print('二维列表:\n',data.values)
# print('df的维度是:',data.ndim)
# print('df占的单元格是:',data.size)
# print('df行与列:',data.shape)
# rows,cols=data.shape#返回一个元组,这里是直接将元组的第一个元素赋给rows,第二个元素赋给了cols
# print('总行数{},总列数{}'.format(rows,cols))

import pandas as pd
#保存的文件
path = 'D:\\A\\test-pandas.xlsx'
data=pd.read_excel(path,0',)
print(data)

rows,cols=data.shape
for i in range(rows):
    print(data.iloc[i].values)#不加value返回的是Series类型,不便于使用


print('读取完成')

补充一下pandas访问数据的方法

DF[列标签] 访问列

DF.iloc[行,列] 按照位置索引,列可以省略,省略后为所有列,可以进行区域访问

        所以访问多行时,是两个方括号

DF.loc[行,列] 按照标签名索引,列可以省略,省略后为所有列,没有标签名时,不能使用

上述返回的均是Series类型【一行或一列】或DF类型【多行或多列】

                <class 'pandas.core.series.Series'>

                <class 'pandas.core.frame.DataFrame'>

import pandas as pd
title=['工号','姓名','性别','出生','职位']
array1 = ['1', '许佳琪', '男', '19990824', "IS"]
array2 = ['2', 'c', '女', '19980615', 'CX']
array3 = ['3', '张鹏辉', '男', '19990621', 'II']
ayy = [array1, array2, array3]
data=pd.DataFrame(data=ayy,columns=title)
print('位置索引')
print(data.iloc[0])#访问单行,返回Series
print(data.iloc[0,:])#等同于上一行
print(data.iloc[[0,2]])#访问多行,返回DF

print('标签索引')
data.index=['zero','one','two']
print(data,'\n')
print(data.loc['one'])#访问单行,返回Series
print(data.loc[['zero','one']])#访问多行
print(data['工号'])#访问单列
print(data[['姓名','职位']])#访问多列

print('区域索引')
print(data.iloc[:2,:2])
print('单元格:',data.loc['zero','姓名'])
print(data.iloc[[0,2],[1,4]])
print(data.loc[['zero','two'],['姓名','职位']])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值