美文网首页
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