本文主要介绍pandas库的加载数据:
数据来源
- 加载数据
- 随机采样
加载数据
pandas提供了一些将表格型数据读取为DataFrame对象的函数,其中用的比较多的是read_csv和read_table,参数说明如下:
参数 | 说明 |
---|---|
path | 表示文件位置、URL、文件型对象的字符串 |
sep或delimiter | 用于将行中的各字段进行拆分的字符串或正则表达式 |
head | 用作列名的行号 |
index_col | 用作行索引的列编号或列名 |
skiprows | 需要跳过的行号列表(从0开始) |
na_value | 一组用户替换的值 |
converters | 由列号/列名跟函数之间的映射关系组成的字典 |
chunksize | 文件快的大小 |
举例:
In [2]: result = pd.read_table('data.txt',sep = '\s+')
In [3]: result
Out[3]:
SEC-DEBIT HKD0002481145000001320170227SECURITIES BUY ON 23Feb2017
0 10011142009679 HKD00002192568083002000 NaN NaN NaN
1 20011142009679 HKD00004154719083002000 NaN NaN NaN
2 30011142005538 HKD00000210215083002300 NaN NaN NaN
3 40011142005538 HKD00000140211083002300 NaN NaN NaN
延伸:
DataFrame写文件:data.to_csv(‘*.csv’)
Series写文件:data.to_csv(‘*.csv’)
Series读文件:Series.from_csv(‘*.csv’)
随机采样
利用numpy.random.permutation函数可以实现对Series和DataFrame的列随机重排序工作
In [18]: df = DataFrame(np.arange(20).reshape(5,4))
In [19]: df
Out[19]:
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19
In [20]: sample = np.random.permutation(5)
In [21]: sample
Out[21]: array([0, 1, 4, 2, 3])
In [22]: df.take(sample)
Out[22]:
0 1 2 3
0 0 1 2 3
1 4 5 6 7
4 16 17 18 19
2 8 9 10 11
3 12 13 14 15
In [25]: df.take(np.random.permutation(5)[:3])
Out[25]:
0 1 2 3
2 8 9 10 11
4 16 17 18 19
3 12 13 14 15