pandas读取文件

# -*-coding:utf-8 -*-
# author:lz
import pandas as pd
# 定义一个类,该类中含有能够读取任意文件到内存
class util:

    def readFile(self,path):
        '''
        利用pandas模块
        pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,常用的有:
        read_csv()   :从文件、URL、文件类型对象中加载带分隔符的数据,默认分隔符为逗号
        read_excel() :
        read_table() :从文件、URL、文件类型对象中加载带分隔符的数据,默认分隔符制表符(“\t”)
        1、列名的问题
        #  读取没有列名的csv(pandas会默认第一行的数据为列名,如果第一行不是列名而是有效数据,就称csv没有列名)
        read_csv(path, # 路径
                header=None # 表明原表没有列名,采用panads为其默认分配的列名
                )
        read_csv(path, # 路径
                names=[第一列,第二列,第三列...] # 表明原表没有列名,自定义列名
                )
        2、单索引的问题
        read_csv(path, # 路径
                header=None # 表明原表没有列名
                names=[第一列,第二列,第三列,第四列...] # 表明原表没有列名,自定义列名
                index_col = '第四列' # 表明将第四列作为索引
                )
        3、层次索引问题
        read_csv(path, # 路径
                names=[第一列,第二列,第三列,第四列...] # 表明原表没有列名,自定义列名
                index_col = ['第三列','第四列'] # 表明将第三列和第四列作为层次索引,其中第三列为第一层索引,第四列为第二层索引
                )
        4、需要忽略的行号:
         read_csv(path, # 路径
                names=[第一列,第二列,第三列,第四列...] # 表明原表没有列名,自定义列名
                index_col = ['第三列','第四列'] # 表明将第三列和第四列作为层次索引,其中第三列为第一层索引,第四列为第二层索引
                skiprows=[0,3,5] # 从头开始跳过第0、3、5行
                skip_footer=4 # 从文件末尾算起,忽略4行。
                nrows=4 # 从文件头开始,读取4行。
                )
        5、尝试将数据解析为日期
        DataFrame df = read_csv(path, # 路径
                parse_dates=True # 尝试解析索引
                parse_dates=['日期','时间'] # 单独解析两列
                parse_dates=[['日期','时间']] # 自动将日期时间两列合起来进行解析,并生成一个名为“日期_时间”的新列代替原来的两列
                                              ------>其实利用这个方法,可以将任意指定的两行进行合并成新的一行。
                parse_dates={'日时':['日期','时间']} # 自动将日期时间两列合起来进行解析,并生成一个名为“日时”的新列代替原来的两列
                keep_date_col=True # 当有多列日期时间参与合并后解析时,如果还需要保留原来的列,则使用这个参数。
                )
        6、迭代的读取(返回的是迭代器)
        Iterator TextFileReader = read_csv(path, # 路径
                iterator=True,# 迭代的读取
                chunksize=10  # 每次迭代的块的大小
                )
        :param path: 输入要读取文件的路径
        :return: 返回一个DataFrame对象
        '''
        df = pd.read_excel(path,parse_dates="发布时间")
        return df

    def sortDataframe(self,df):
        '''
        # 写在前边:
            # 数字就按数字的大小进行排序
            # 字母按照字典顺序排序
            # 日期时间按照前后进行排序
        DataFrame df1 = df.sort_index(axis=0 # 0表示按照行名排序,1按照列名排序
                    ascending=True # True为升序,False为降序
                    )
        DataFrame df1 = df.sort_values(axis=0 # 默认按照列排序,即纵向排序;如果为1,则是横向排序。
                    by='按这列排序'
                    ascending=True # True为升序,False为降序
                    )
        DataFrame df1 = df.sort_values(axis=0
                    by=['按这列排序','按这列排序']
                    ascending=[True,False]
                    )
        DataFrame df1 = df.sort_values(axis=0
                    by='按这列排序'
                    inplace=False # False表示排序后生成一个新的DataFrame,True表示生成一个新的DataFrame并覆盖掉当前的df
                    )
        df.sort_values(axis=0
                    by='按这列排序'
                    inplace=True
                    )
        注意:df. sort_index()可以完成和df. sort_values()完全相同的功能,
        但python更推荐用只用df. sort_index()对“根据行标签”和“根据列标签”排序,
        其他排序方式用df.sort_values()。


        df1.reset_index(drop=True,
                    inplace=True
                    )# 排序后索引乱序,需要重新索引
        :param df:
        :return:
        '''

        pass


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值