首页 > 其他 > 详细

数据分析实例--以电票数据为例

时间:2020-10-22 14:31:44      阅读:28      评论:0      收藏:0      [点我收藏+]

有这样一张电票数据表:2020转贴现清单.csv (实际68行数据,含标题行)
技术分享图片
今天我们用它来练习用python (含 Pandas, pymysql)和 MySQL 如何对它进行一些基础的操作.

首先, 我们导入它

import pandas as pd
#本开关用于控制pandas中float数据的显示方式,关闭科学计数方式,显示小数点后两位.
pd.options.display.float_format=‘{:.2f}‘.format
#表1是清单,表2是承兑行额度表
file1_path = ‘C:/Users/juncheng/Desktop/PY/2020转贴现清单.csv‘
file2_path = ‘C:/Users/juncheng/Desktop/PY/剩余额度.csv‘
#用read_csv读取,只取四列usecols("票号", "票面金额(元)","票面到期日","承兑行"),注意cols从0开始数.
bill_list = pd.read_csv(file1_path, usecols=(0,4,9,17),header=0)

得到的bill_list如下图:
bill_list

Out[7]: 
                              票据号码       票面金额         到期日     承兑行
0   130558100301420200703673063725 2000000.00  2020-11-01  中国民生银行
1   110329007403220200618660897195 1000000.00  2020-11-02  中国农业银行
2   110329007403220200618660897218 1000000.00  2020-11-02  中国农业银行
3   110429000615420200619662041630 1000000.00  2020-11-02    中国银行
4   130558401822120200804695066745 8000000.00  2020-11-02  中国民生银行
..                             ...        ...         ...     ...
63  110458602041820200528647586166 1500000.00  2020-11-28    中国银行
64  130133100013120200527645905735 1000000.00  2020-11-28    交通银行
65  130133100013120200527645905743 1000000.00  2020-11-28    交通银行
66  130558100301420200730692349173 2000000.00  2020-11-28  中国民生银行
67  130558506700420200630670941661 1455514.85  2020-12-30  中国民生银行

[68 rows x 4 columns]

bill_list是一个DataFrame, 大小是[68 rows x 4 columns], 下面我们再对它进行一些操作, 注意体会各个命令的实际效果

list(bill_list)
Out[6]: [‘票据号码‘, ‘票面金额‘, ‘到期日‘, ‘承兑行‘]

bill_list.columns
Out[8]: Index([‘票据号码‘, ‘票面金额‘, ‘到期日‘, ‘承兑行‘], dtype=‘object‘)

bill_list.values

Out[3]: 
array([[‘130558100301420200703673063725‘, 2000000.0, ‘2020-11-01‘, ‘中国民生银行‘],
       [‘110329007403220200618660897195‘, 1000000.0, ‘2020-11-02‘, ‘中国农业银行‘],
       [‘110329007403220200618660897218‘, 1000000.0, ‘2020-11-02‘, ‘中国农业银行‘],
       [‘110429000615420200619662041630‘, 1000000.0, ‘2020-11-02‘, ‘中国银行‘],
       [‘130558401822120200804695066745‘, 8000000.0, ‘2020-11-02‘, ‘中国民生银行‘],
       [‘130558100301420200804694990785‘, 2273800.0, ‘2020-11-03‘, ‘中国民生银行‘],
       [‘130558506700420200630670941661‘, 1455514.85, ‘2020-12-30‘,‘中国民生银行‘]], dtype=object)

关于df.values, dtype=object, 它大概是这么个意思 (也看不出来和原来的DataFrame有多大的区别 )
技术分享图片

按票据号码升序排列, axis =0 是按列, 也可以不写,默认. 如果 axis = 1, 就是按行, 就必须写.
bill_list.sort_values(by=‘票据号码‘,axis =0)

Out[9]: 
                              票据号码       票面金额         到期日     承兑行
12  110258100201120200310594392608 6300000.00  2020-11-10  中国工商银行
24  110258650027020200515637250023 2900000.00  2020-11-15  中国工商银行
42  110258800287820200820704406617 1550000.00  2020-11-20  中国工商银行
52  110258800287820200825707679003 2250000.00  2020-11-25  中国工商银行
59  110258800287820200827710725997 1200000.00  2020-11-27  中国工商银行
..                             ...        ...         ...     ...
35  190729000121820200724687172545 2000000.00  2020-11-19  中国农业银行
36  190729000121820200724687172762 2000000.00  2020-11-19  中国农业银行
37  190729000121820200724687172779 2000000.00  2020-11-19  中国农业银行
38  190729000121820200724687182977 2000000.00  2020-11-19  中国农业银行
39  190729000121820200724687182985 2000000.00  2020-11-19  中国农业银行

[68 rows x 4 columns]

如果想排序的有两列,比如按‘票面金额‘倒序(由大到小),按‘到期日‘顺序(由小到大),可以这么写:
bill_list.sort_values(by=[‘票面金额‘,‘到期日‘],axis =0,ascending = [False, True])
Out[10]:
票据号码 票面金额 到期日 承兑行
32 131022100018820200518638790084 35060806.35 2020-11-18 上海浦东发展银行
18 131060200017220200515637681036 30428000.00 2020-11-13 上海浦东发展银行
19 131022100018820200513636202745 30000000.00 2020-11-13 上海浦东发展银行
13 130133700007220200511633966401 12000000.00 2020-11-11 交通银行
4 130558401822120200804695066745 8000000.00 2020-11-02 中国民生银行
.. ... ... ... ...
3 110429000615420200619662041630 1000000.00 2020-11-02 中国银行
25 130158100008620200515637990749 1000000.00 2020-11-15 交通银行
44 130558506700420200520640035647 1000000.00 2020-11-20 中国民生银行
64 130133100013120200527645905735 1000000.00 2020-11-28 交通银行
65 130133100013120200527645905743 1000000.00 2020-11-28 交通银行

[68 rows x 4 columns]

数据分析实例--以电票数据为例

原文:https://www.cnblogs.com/treasury-manager/p/13857464.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!