美文网首页
pandas教程系列三:行、列、单元格 & 处理TimeStam

pandas教程系列三:行、列、单元格 & 处理TimeStam

作者: HaigLee | 来源:发表于2019-12-03 01:39 被阅读0次

    作者:HaigLee 
    地址:https://www.jianshu.com/u/67ec21fb270d
    本文由 @HaigLee 原创发布。未经许可,禁止转载。

    0. Series

    pandas 里面 行和列都可以用一个东西来表示,这个就是Series。

    1. 生产一个序列对象

    import pandas as pd 
    

    1.1. 初始化一个Series

    s1 = pd.Series()
    s1.data # 将版本会被去掉
    

    <memory at 0x11bd89648>

    s1.name
    
    s1.index
    

    Index([], dtype='object')

    2. Series 和 python 中 的dict 很类似,可以进行转化

    2.1. 生成一个字典

    test_dict = {'x':1,'y':2,'z':3}
    

    2.2. 选取字典的key值

    test_dict.keys()
    

    dict_keys(['x', 'y', 'z'])

    2.3. 选取字典的values值

    test_dict.values()
    

    dict_values([1, 2, 3])

    2.4. 根据key选取字典的value值

    test_dict['y']
    

    2

    2.5. 将字典转化为Series

    test_series = pd.Series(test_dict)
    

    2.6. 输出Series

    test_series
    

    x 1
    y 2
    z 3
    dtype: int64

    2.7. 输出Series的索引

    test_series.index
    

    Index(['x', 'y', 'z'], dtype='object')

    2.8. 输出Series数据地址,将来会被去掉,不推荐使用

    test_series.data
    

    2.9. 使用索引列表和值列表进行Series的初始化

    test_index = ['x','y','z','t']
    test_ele = ['0','0','1','1']
    

    2.10. 将两个列表直接转化为Series

    x = pd.Series(test_ele)
    x[0]
    

    '0'

    X[3]
    

    '1'

    3. 处理TimeStamp

    3.1. 导入包

    import pandas as pd 
    

    3.2. 读取文件,去除文件最后一行

    read_file = pd.read_csv('./data/popularity-contest.csv',sep=' ')[:-1]
    

    3.3. 输出文件前5行,包含标题6行

    read_file.head(5)
    
    数据1.png

    3.4. 更换列名

    read_file.columns = ['atime', 'ctime', 'package-name', 'mru-program', 'tag']
    

    3.5. 输出文件前5行另外一种方式

    read_file[:5]
    
    数据2.png

    3.6. 输出文件前5行

    read_file.head(5)
    
    数据3.png

    3.7. 打印列类型

    print(type(read_file['atime']))
    

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

    3.8. 打印表类型

    print(type(read_file))
    

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

    3.9. 将 atime 列切换为 int 类型

    read_file['atime'] = read_file['atime'].astype('int')
    

    3.10. 将 ctime列切换为 int 类型

    read_file['ctime'] = read_file['ctime'].astype('int')
    

    3.11. 将 atime 列 切换为 datetime类型,单位为:s

    read_file['atime'] = pd.to_datetime(read_file['atime'],unit='s') # (D,s,ms,us,ns)
    

    3.12. 将 ctime 列 切换为 datetime类型,单位为:s

    read_file['ctime'] = pd.to_datetime(read_file['ctime'],unit='s')
    # pd.to_datetime()
    #print(read_file['atime'])
    read_file['atime'].dtype
    

    dtype('<M8[ns]')

    3.13. 根据atime 时间字段进行比较过滤

    read_file[read_file['atime'] > '2013-01-01'][:10]
    
    数据4.png

    3.14. 魔法操作符,保留package-name列中不存在‘lib’的行数据

    read_file = read_file[~read_file['package-name'].str.contains('lib')]
    

    3.15. 输出文件前5行

    read_file.head(5)
    
    数据5.png

    3.16. 对表数据根据dateTime类型列进行倒序(从大到小)排序

    read_file.sort_values('ctime',ascending=False).head(5)
    
    数据6.png

    3.17. 对表数据根据dateTime类型列进行正序(从小到大)排序

    read_file.sort_values('ctime',ascending=True).head(5)
    
    数据7.png

    注: 对于单位,可以选择ms、us、ns等,根据timestamp的长度而决定,这里是10位,所以选择s级。

    作者:HaigLee
    地址:https://www.jianshu.com/u/67ec21fb270d
    本文由 @HaigLee 原创发布。未经许可,禁止转载。

    相关文章

      网友评论

          本文标题:pandas教程系列三:行、列、单元格 & 处理TimeStam

          本文链接:https://www.haomeiwen.com/subject/xcpqgctx.html