本文主要介绍了,利用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 | 
隐藏代码的语句
| 
 | 
 |