pandas dataframe 表头_Pandas数据处理与分析二

本文介绍如何使用Pandas库进行Excel与CSV文件的读写操作,包括基本函数用法、参数设置及示例代码。
6a3c03e8357f52c201987c935a880709.png5bde4282918fb03900d928bd2e201615.gif读写excel文件 1、读取Excel数据               pandas中通过read_excel()函数读取以 'xls' 或 ’xlsx’ 后缀的excel文件,使用方法和各参数详解如下:
pandas.read_excel(io, sheet_name=0, header=0, index_col=None, names=None,dtype=None)
 

1ddc3ca4153cec3f56b391a2aed44325.png

举个例子:pandas_data.xlsx文件Sheet2中的数据如下:

ee5ff70ec0dda30cb67f28b0ca18b513.png

  • 指定第一行数据为列名(也是默认情况)

df = pd.read_excel('pandas_data.xlsx',sheet_name='Sheet2', names=['班级','班主任','学生人数'])print(df)
输出:
   班级 班主任  学生人数0   1  小红    401   2  小王    432   3  小明    453   4  小张    474   5  小李    505   6  小刘    436   7  小周    427   8  小陈    41
  • 指定班级列(第一列)为索引列

df = pd.read_excel('pandas_data.xlsx',sheet_name=1, names=['班级','班主任','学生人数'], index_col=0)print(df)

输出:

班级 班主任  学生人数        1   小红    402   小王    433   小明    454   小张    475   小李    506   小刘    437   小周    428   小陈    41
2、写数据至Excel      Pandas通过to_excel()函数写入数据到excel文件,使用方法和各参数详解如下:
DataFrame.to_excel(excel_writer=None, sheet_name=None, na_rep='',float_format=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)

523e35a9333a33db25fff2d6377263fa.png

  • 将自定义的数据写入指定的sheet页,显示索引

info = pd.DataFrame({     'id': [1, 2, 3, 4, 5, 6],      'course': ['英语', '数学', '化学', '物理', '政治', '地理'],      'avg_score': [80, 90, 85, 91, 99,79],     'teacher': ['小红', '小王', '小明', '小张', '小李', '小刘']})info.to_excel('pandas_data.xlsx',sheet_name='成绩')

a386599bcdad700cb826d76241c7522e.png

  • 将自定义数据写入指定的sheet页,显示索引列为id列

info = pd.DataFrame({     'id': [1, 2, 3, 4, 5, 6],      'course': ['英语', '数学', '化学', '物理', '政治', '地理'],      'avg_score': [80, 90, 85, 91, 99,79],     'teacher': ['小红', '小王', '小明', '小张', '小李', '小刘']})info.to_excel('pandas_data.xlsx',sheet_name='成绩',index_label='id')

7895b068b1e133ffd7a5f0ae3930368f.png

  • 读取excel中的数据,写入指定文档的sheet页中,缺失值以"None"填充,不显示索引

info=pd.read_excel('demo.xlsx')info.to_excel('demo_1.xlsx',sheet_name='班级信息',na_rep='None',index=False)

               demo.xlsx数据                                             demo_1.xlsx数据:

fe3538e69f71a750d1aa3b8d1751f781.png         8cd9d2d295b872a83b3e04d9388e8aa0.png

读写csv文件

1、读取csv文件数据

文件:

88541e60a5b7173b401d502967a5e7ff.png

csv_data = pd.read_csv('./1111.csv',sep=',')print(csv_data)
                      一级,二级,三级0  侵犯公民人身权利、民主权利罪,UNK,拐卖妇女、儿童罪1       侵犯公民人身权利、民主权利罪,UNK,重婚罪2                侵犯财产罪,UNK,抢劫罪3                侵犯财产罪,UNK,盗窃罪4                侵犯财产罪,UNK,诈骗罪

2、skiprows跳过显示某些行

  • skiprows为整数(表头算下标1)

csv_data = pd.read_csv('./1111.csv',sep=',',skiprows=1) # 不显示第一行print(csv_data)
  侵犯公民人身权利、民主权利罪,UNK,拐卖妇女、儿童罪0      侵犯公民人身权利、民主权利罪,UNK,重婚罪1               侵犯财产罪,UNK,抢劫罪2               侵犯财产罪,UNK,盗窃罪3               侵犯财产罪,UNK,诈骗罪
  • skiprows为列表(表头算下标0)

csv_data = pd.read_csv('./1111.csv',sep=',',skiprows=[1,2]) # 不显示第1、2行数据print(csv_data)
        一级,二级,三级0  侵犯财产罪,UNK,抢劫罪1  侵犯财产罪,UNK,盗窃罪2  侵犯财产罪,UNK,诈骗罪
  • skiprows为lambda表达式(不算默认的表头行)

# 显示偶数行csv_data = pd.read_csv('./1111.csv',sep=',',skiprows=lambda x:x%2 == 0)print(csv_data)
  侵犯公民人身权利、民主权利罪,UNK,拐卖妇女、儿童罪0               侵犯财产罪,UNK,抢劫罪1               侵犯财产罪,UNK,诈骗罪

3、skiprows与header的关系

     先跳过skiprows行,再根据剩下的行确定表头行

csv_data = pd.read_csv('./1111.csv',sep=',',skiprows=1,header=1)print(csv_data)
  侵犯公民人身权利、民主权利罪,UNK,重婚罪0          侵犯财产罪,UNK,抢劫罪1          侵犯财产罪,UNK,盗窃罪2          侵犯财产罪,UNK,诈骗罪

3、无效值处理na_values

csv_data = pd.read_csv('./1111.csv',sep=',',na_values=['侵犯财产罪,UNK,诈骗罪'])print(csv_data)
                      一级,二级,三级0  侵犯公民人身权利、民主权利罪,UNK,拐卖妇女、儿童罪1       侵犯公民人身权利、民主权利罪,UNK,重婚罪2                侵犯财产罪,UNK,抢劫罪3                侵犯财产罪,UNK,盗窃罪4                          NaN

4、读取前n行数据nrows

csv_data = pd.read_csv('./1111.csv',sep=',',nrows=2)print(csv_data)  
                 一级,二级,三级0  侵犯公民人身权利、民主权利罪,UNK,拐卖妇女、儿童罪1       侵犯公民人身权利、民主权利罪,UNK,重婚罪

5、分块读取数据chunksize

csv_data = pd.read_csv('./1111.csv',sep=',',chunksize=2) # 将返回一个TextFileReader 对象迭代器for v in csv_data:    print(v)

6、写数据到csv文件

csv_data = pd.read_csv('./Book1.csv',sep=',',engine='python', encoding='gbk')print(csv_data)csv_data['其他']='暂无分类'print(csv_data)csv_data.to_csv('./2222.csv', sep=',', index=False,na_rep= 'NA',columns=['其他','日期','天气','地点'],encoding='gbk')

注意:读取含有中文的csv文件时,需要加上 engine=‘python’和encoding信息,一般是utf-8或者gbk,都可以试一试

         日期  天气  地点0  20200912   晴  南京1  20200812  多云  上海2  20200908   雨  深圳3  20200512   阴  山西4  20200602  多云  山东5  20200415  多云  南通6  20200504   晴  苏州         日期  天气  地点    其他0  20200912   晴  南京  暂无分类1  20200812  多云  上海  暂无分类2  20200908   雨  深圳  暂无分类3  20200512   阴  山西  暂无分类4  20200602  多云  山东  暂无分类5  20200415  多云  南通  暂无分类6  20200504   晴  苏州  暂无分类

870dd7ff99ec759fd3cc456363cb6efb.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值