运维工具 – 数据构造实例

释放双眼,带上耳机,听听看~!

生成随机数


1
2
3
4
5
6
7
8
9
fruits = ['apple', 'orange', 'apple', 'apple'] * 10
print(fruits)
N = len(fruits)
df = pd.DataFrame({'fruit': fruits,
                   'basket_id': np.arange(N),
                   'count': np.random.randint(3, 15, size=N),
                   'weight': np.random.uniform(0, 4, size=N),
                   'rands': np.random.rand(N)},
                  columns=['basket_id', 'fruit', 'count', 'weight', 'rands'])

运维工具 –  数据构造实例

从a-zA-Z0-9生成指定数量的随机字符


1
2
3
4
5
6
7
8
9
10
11
12
13
import random
import string

value = ''.join(random.sample(string.ascii_letters + string.digits, 8))
print(value)


alphabet = 'abcdefghijklmnopqrstuvwxyz!@#$%^&*()'
characters = random.sample(alphabet, 5)
print(characters)

table = ['剪刀', '石头', '布']
print(random.choice(table))

pd.date_range构造时间序列


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
指定开始、结束时间
import pandas as pd
# 指定开始、结束
pd.date_range(start='20211001', end='20211010')
'''
DatetimeIndex(['2021-10-01', '2021-10-02', '2021-10-03', '2021-10-04',
               '2021-10-05', '2021-10-06', '2021-10-07', '2021-10-08',
               '2021-10-09', '2021-10-10'],
              dtype='datetime64[ns]', freq='D')
'''
指定个数
# 指定个数
pd.date_range(start='2021-10-01', periods=5)
'''
DatetimeIndex(['2021-10-01', '2021-10-02', '2021-10-03', '2021-10-04',
               '2021-10-05'],
              dtype='datetime64[ns]', freq='D')
'''
指定频率(间隔)
freq 可以传入所有 Offset Aliases 。

# 指定频率(间隔)
pd.date_range(start='2021-10-01', periods=10, freq='1D')
'''
DatetimeIndex(['2021-10-01', '2021-10-02', '2021-10-03', '2021-10-04',
               '2021-10-05', '2021-10-06', '2021-10-07', '2021-10-08',
               '2021-10-09', '2021-10-10'],
              dtype='datetime64[ns]', freq='D')
'''
pd.date_range(start='2021-10-01', end='2021-10-10', freq='3D')
'''
DatetimeIndex(['2021-10-01', '2021-10-04', '2021-10-07', '2021-10-10'], dtype='datetime64[ns]', freq='3D')
'''

import pandas as pd
pd.date_range('20211018', periods=10, freq='5H')
'''
DatetimeIndex(['2021-10-18 00:00:00', '2021-10-18 05:00:00',
               '2021-10-18 10:00:00', '2021-10-18 15:00:00',
               '2021-10-18 20:00:00', '2021-10-19 01:00:00',
               '2021-10-19 06:00:00', '2021-10-19 11:00:00',
               '2021-10-19 16:00:00', '2021-10-19 21:00:00'],
              dtype='datetime64[ns]', freq='5H')
'''

pd.date_range('20211018', periods=10, freq='3M')
'''
DatetimeIndex(['2021-10-31', '2022-01-31', '2022-04-30', '2022-07-31',
               '2022-10-31', '2023-01-31', '2023-04-30', '2023-07-31',
               '2023-10-31', '2024-01-31'],
              dtype='datetime64[ns]', freq='3M')
'''
business day(工作日)实现
pd.date_range('20211018', freq='B', periods=10)
'''
DatetimeIndex(['2021-10-18', '2021-10-19', '2021-10-20', '2021-10-21',
               '2021-10-22', '2021-10-25', '2021-10-26', '2021-10-27',
               '2021-10-28', '2021-10-29'],
              dtype='datetime64[ns]', freq='B')
'''
pd.bdate_range('20211018', periods=10) # 结果同上
是否标准化到午夜时间戳
# 从0点开始
pd.date_range(start='2021-10-01 17:23:10', periods=10, freq='s', normalize=True)
'''
DatetimeIndex(['2021-10-01 00:00:00', '2021-10-01 00:00:01',
               '2021-10-01 00:00:02', '2021-10-01 00:00:03',
               '2021-10-01 00:00:04', '2021-10-01 00:00:05',
               '2021-10-01 00:00:06', '2021-10-01 00:00:07',
               '2021-10-01 00:00:08', '2021-10-01 00:00:09'],
              dtype='datetime64[ns]', freq='S')
'''

# 从指定时间开始
pd.date_range(start='2021-10-01 17:23:10', periods=10, freq='s')
'''
DatetimeIndex(['2021-10-01 17:23:10', '2021-10-01 17:23:11',
               '2021-10-01 17:23:12', '2021-10-01 17:23:13',
               '2021-10-01 17:23:14', '2021-10-01 17:23:15',
               '2021-10-01 17:23:16', '2021-10-01 17:23:17',
               '2021-10-01 17:23:18', '2021-10-01 17:23:19'],
              dtype='datetime64[ns]', freq='S')
'''
左右开区间、闭区间
# 左闭右开
pd.date_range(start='2021-10-01', end='2021-10-10', freq='3D', closed='left')
# DatetimeIndex(['2021-10-01', '2021-10-04', '2021-10-07'], dtype='datetime64[ns]', freq='3D')

# 右闭左开
pd.date_range(start='2021-10-01', end='2021-10-10', freq='3D', closed='right')
# DatetimeIndex(['2021-10-04', '2021-10-07', '2021-10-10'], dtype='datetime64[ns]', freq='3D')

# 左闭右闭 默认
pd.date_range(start='2021-10-01', end='2021-10-10', freq='3D', closed=None)
# DatetimeIndex(['2021-10-01', '2021-10-04', '2021-10-07', '2021-10-10'], dtype='datetime64[ns]', freq='3D')
时区
pd.date_range(start='20211001', periods=5, tz='Asia/Tokyo')
'''
DatetimeIndex(['2021-10-01 00:00:00+09:00', '2021-10-02 00:00:00+09:00',
               '2021-10-03 00:00:00+09:00', '2021-10-04 00:00:00+09:00',
               '2021-10-05 00:00:00+09:00'],
              dtype='datetime64[ns, Asia/Tokyo]', freq='D')

给TA打赏
共{{data.count}}人
人已打赏
安全运维

安全运维之道:发现、解决问题的有效闭环

2024-4-14 20:59:36

安全运维

稳定性建设 – 架构优化的关键策略

2025-2-11 17:15:56

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索