本文主要介绍了,利用pandas进行数据处理时,经常会用到的一些小技巧
与时间相关
|
|
时间格式转成字符串
- 按照给定的格式(%Y%m%d)进行转化
|
|
datetime.datetime(2017, 5, 19, 13, 48, 33, 86161)
|
|
'20170519'
字符串格式转成时间
- 因为传入的字符串没有时间,所以自动转成了0点,传入是可以给定时间,注意后面的格式保持一致
|
|
datetime.datetime(2017, 5, 15, 0, 0)
浮点数转成时间
- 先用time.ctime转成时间格式后
|
|
'Thu May 11 14:26:40 2017'
- 再用strptime转成想要的格式
|
|
datetime.datetime(2017, 5, 11, 14, 26, 40)
定义特定的时间
|
|
datetime.datetime(2017, 5, 19, 13, 48, 33, 86161)
|
|
datetime.datetime(2017, 5, 12, 13, 48, 33, 86161)
其他
- 查询给定日期在今年是第几周,周几
|
|
(2017, 20, 5)
切割
字符串的切割
- 用split返回的结果是个list
|
|
['ssssdddds', 'nnnnnn']
- 以下定义了一个按照给定格式切割字符串的函数
|
|
|
|
('ab', 'cd')
|
|
|
|
blank | |
---|---|
0 | ab|cd|ef |
1 | ab|cd|ef |
|
|
blank | str1 | str2 | |
---|---|---|---|
0 | ab|cd|ef | ab | cd |
1 | ab|cd|ef | ab | cd |
数据的切割
- list中的数字切割
|
|
[(0, 1], (1, 50], (50, inf]]
Categories (3, object): [(0, 1] < (1, 50] < (50, inf]]
- 表格中的数字切割
|
|
number | |
---|---|
0 | 1 |
1 | 8 |
2 | 100 |
|
|
number | split_number | |
---|---|---|
0 | 1 | (0, 1] |
1 | 8 | (1, 50] |
2 | 100 | (50, inf] |
闭包的形式
- 对于内侧函数来说,如果某个变量一直是不变的,可以将此变量作为外层的参数,内层函数返回的是结果,外层函数返回的是内层函数,如下:
- 此函数的用意:表中某列存了IP地址,根据IP地址返回城市
- 外部有一个df中存放的是某段ip对应的城市信息
|
|
|
|
- region_df中存放的是经纬度对应的身份、城市,用一下函数返回
|
|
|
|
添加文件
|
|
读写文件
|
|
按轴转置
- unstack
|
|
num | ||
---|---|---|
kind1 | kind2 | |
a | k1 | 1 |
k2 | 2 | |
b | k1 | 3 |
k2 | 4 |
|
|
kind1 | a | b | ||
---|---|---|---|---|
kind2 | k1 | k2 | k1 | k2 |
num | 1 | 2 | 3 | 4 |
|
|
num | ||
---|---|---|
kind1 | a | b |
kind2 | ||
k1 | 1 | 3 |
k2 | 2 | 4 |
比较两个函数运行的时间,默认运行10000次
|
|
while循环
|
|
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[10]
对列数据求和
|
|
kind | count | amount | |
---|---|---|---|
0 | kind1 | 1 | 20 |
1 | kind2 | 2 | 30 |
|
|
kind | kind1 | kind2 |
---|---|---|
count | 1 | 2 |
amount | 20 | 30 |
|
|
kind | kind1 | kind2 | 合计 |
---|---|---|---|
count | 1 | 2 | 6 |
amount | 20 | 30 | 100 |
|
|
kind | count | amount | |
---|---|---|---|
0 | kind1 | 1 | 20 |
1 | kind2 | 2 | 30 |
2 | 合计 | 6 | 100 |
隐藏代码的语句
|
|