Python 帮同事用pandas快速筛选Excel文件

news/2024/9/23 7:32:22/

同事正在为怎样处理一个18万行的全年财务Excel文件发愁,文件足足有30M,打开文件也要两三分钟,于是他就向我求助。大概意思就是要筛选出Data工作簿“源数据”Sheet中所有收款人对应的付款人及付款笔数、金额小计,于是我简化做了一个表格,只有4个涉及到的列,随机数据200行用于测试。其实我也没好好学过pandas库的用法,只能边写代码边查库函数方法的帮助。

读者想测试的话把以下表格建一个Data.xlsx文件,放入工作表sheet改名为“源数据”:

记账授权号付款人收款人摘要金额
1Fondue FredChris M.利息收入659023.50
2Fondue Fredcat u.奖金686397.39
3Peppermint GrillErin C.利息收入547630.80
4Viengvilay Thai CuisineRonyde R.工资729166.04
5Happy ValleySteven C.利息收入237085.82
6Pancho'sElise B.午餐补助445978.71
7Jasmine ThaiKelly J. 58789.61
8Fondue FredChris M.奖金269656.77
9Peppermint Grillcat u.电话费461892.01
10Viengvilay Thai CuisineErin C.利息收入898460.26
11Happy ValleyRonyde R.午餐补助253800.23
12Pancho'sSteven C. 369248.58
13Peking ExpressElise B.午餐补助909461.19
14Pho K & KKelly J.奖金636912.13
15Momo MasalaKreaky B.午餐补助294433.29
16Happy ValleyCharles L.利息收入98425.93
17Free Speech Movement CafeSV B.绩效奖385952.70
18Sun Hong Kong RestaurantEmmanuel K.电话费298993.76
19Tivoli CaffeHayne P.奖金362271.41
20Fondue FredChester R.奖金929680.70
21Pho K & KFrank E.电话费443264.47
22Momo Masalaian B.利息收入590357.56
23La Cascada TaqueriaAnand J.绩效奖120278.90
24Free Speech Movement CafeMichelle C.电话费363154.49
25Sun Hong Kong RestaurantConnie L.奖金772297.01
26Fondue FredChester R.绩效奖56434.60
27Jasmine ThaiFrank E.午餐补助676935.11
28Fondue Fredian B.绩效奖47426.88
29Peppermint GrillAnand J.工资26559.22
30Pancho'sMichelle C.午餐补助829193.46
31Happy ValleyConnie L.午餐补助790252.39
32Fondue FredChris M.奖金789003.64
33Peppermint Grillcat u.工资745933.99
34Viengvilay Thai CuisineErin C.工资236399.23
35Happy ValleyRonyde R.电话费586514.28
36Pancho'sSteven C.电话费704429.85
37Peking ExpressElise B.利息收入706649.53
38Pho K & KKelly J.利息收入798905.40
39Pancho'sKreaky B.午餐补助123342.41
40Pancho'sCharles L.利息收入684495.80
41Fondue FredSV B.工资759880.77
42Peppermint GrillEmmanuel K.奖金164258.96
43Viengvilay Thai CuisineChris M.午餐补助450074.73
44Happy Valleycat u.工资732141.47
45Pancho'sErin C.工资382335.59
46Peking ExpressRonyde R.电话费52157.74
47Pho K & KSteven C.奖金86584.79
48Pancho'sElise B.工资743686.70
49La Cascada TaqueriaKelly J.利息收入397502.25
50Free Speech Movement CafeKreaky B.奖金396860.39
51Fondue FredChris M.利息收入825482.56
52Fondue Fredcat u.绩效奖397166.24
53Jasmine ThaiErin C.利息收入116214.97
54Fondue FredRonyde R.利息收入478843.26
55Peppermint GrillSteven C.绩效奖607805.07
56Peking ExpressElise B.电话费839463.59
57Happy ValleyKelly J.绩效奖552333.25
58Pancho'sKreaky B.奖金264649.21
59Pancho'sCharles L.工资804044.64
60Pho K & KSV B.电话费188521.05
61Momo MasalaEmmanuel K.绩效奖548395.28
62La Cascada TaqueriaHayne P.电话费320491.57
63Pancho'sChester R.电话费564264.20
64Jasmine ThaiFrank E.电话费26548.08
65Fondue Fredian B.绩效奖561130.01
66Peppermint GrillAnand J.利息收入310639.75
67Viengvilay Thai CuisineMichelle C.午餐补助126372.01
68Happy ValleyConnie L.午餐补助283743.91
69Pancho'sCharles L.利息收入466645.47
70Peking ExpressSV B.利息收入790773.30
71Pho K & KEmmanuel K.午餐补助332421.10
72Momo MasalaHayne P.电话费304884.58
73La Cascada TaqueriaChester R.午餐补助478597.45
74Free Speech Movement CafeFrank E.电话费38349.75
75Sun Hong Kong Restaurantian B.午餐补助708450.80
76Jasmine ThaiAnand J.利息收入352943.26
77Fondue FredMichelle C.电话费84445.31
78Sun Hong Kong RestaurantConnie L.利息收入446377.36
79Viengvilay Thai CuisineChris M.午餐补助487447.24
80Happy Valleycat u.工资621560.18
81Pancho'sErin C.绩效奖738774.54
82Jasmine ThaiRonyde R.午餐补助878550.80
83Jasmine ThaiSteven C.工资606650.62
84Pancho'sElise B.利息收入652152.47
85Peppermint GrillKelly J.绩效奖49818.52
86Sun Hong Kong RestaurantKreaky B.奖金553236.99
87Happy ValleyCharles L.奖金753966.73
88Pancho'sSV B.奖金349994.17
89Jasmine ThaiEmmanuel K.午餐补助369869.21
90Fondue FredHayne P.工资901013.93
91Pancho'sChester R.奖金424058.34
92Viengvilay Thai CuisineChris M.奖金129926.48
93Happy Valleycat u.工资241263.49
94Pancho'sErin C.利息收入52658.55
95Peking ExpressRonyde R.利息收入574086.39
96Pancho'sSteven C.奖金329354.33
97Jasmine ThaiElise B.电话费772150.86
98Fondue FredKelly J.绩效奖778344.81
99Peppermint GrillKreaky B.工资121135.05
100Happy ValleyCharles L.午餐补助469759.67
101Happy ValleyKreaky B.奖金259231.87
102Pancho'sCharles L.利息收入283332.19
103Peking ExpressSV B.绩效奖137020.38
104Pho K & KEmmanuel K.绩效奖17895.81
105Momo MasalaHayne P.绩效奖487485.09
106La Cascada TaqueriaChester R.电话费713075.82
107Free Speech Movement CafeFrank E.利息收入516484.10
108Sun Hong Kong RestaurantChris M.绩效奖388540.27
109Peppermint Grillcat u.利息收入821033.66
110Sun Hong Kong RestaurantErin C.电话费141187.69
111Tivoli CaffeRonyde R.利息收入548204.84
112Peking ExpressSteven C.电话费187591.63
113Peking ExpressElise B.绩效奖422040.66
114Pho K & KKelly J.利息收入899000.90
115Momo MasalaKreaky B.奖金860487.16
116Pancho'sCharles L.奖金565460.00
117Jasmine ThaiSV B.电话费534439.95
118Fondue FredEmmanuel K.利息收入619974.15
119Sun Hong Kong RestaurantChris M.利息收入274497.93
120Happy Valleycat u.午餐补助435219.80
121Happy ValleyRonyde R.利息收入845869.39
122Pancho'sSteven C.电话费354800.67
123Peking ExpressElise B.电话费953247.52
124Pho K & KKelly J.电话费481924.05
125Momo MasalaKreaky B.绩效奖404013.01
126Happy ValleyCharles L.绩效奖769668.63
127Free Speech Movement CafeSV B.利息收入83031.82
128Sun Hong Kong RestaurantEmmanuel K.奖金631631.62
129Fondue FredHayne P.绩效奖736780.82
130Pancho'sChester R.奖金107541.96
131Viengvilay Thai CuisineFrank E.奖金867043.05
132Happy Valleyian B.利息收入225032.17
133Jasmine ThaiAnand J.工资826160.06
134Jasmine ThaiMichelle C.奖金575971.60
135Happy ValleyConnie L.奖金164416.13
136Jasmine ThaiHayne P.奖金919835.19
137Fondue FredChester R.工资554112.76
138Peppermint GrillFrank E.电话费370809.24
139Viengvilay Thai Cuisineian B.午餐补助789340.74
140Jasmine ThaiAnand J.利息收入982375.06
141Fondue FredChris M.午餐补助534441.78
142Fondue Fredcat u.午餐补助599801.16
143Pho K & KErin C.奖金506099.20
144Momo MasalaRonyde R.午餐补助950946.03
145La Cascada TaqueriaSteven C.午餐补助10551.28
146Free Speech Movement CafeElise B.工资229204.60
147Sun Hong Kong RestaurantKelly J.午餐补助202276.01
148Fondue FredKreaky B.奖金763411.47
149Pancho'sCharles L.午餐补助976836.74
150Viengvilay Thai CuisineSV B.午餐补助496867.88
151Happy ValleyEmmanuel K.奖金467356.72
152Pancho'sHayne P.午餐补助230336.90
153Pancho'sChester R.奖金98807.02
154Pancho'sFrank E.奖金513703.80
155Sun Hong Kong RestaurantChris M.绩效奖677359.51
156Peppermint Grillcat u.奖金466781.93
157Peppermint GrillErin C.奖金494887.11
158Viengvilay Thai CuisineRonyde R.绩效奖176694.60
159Happy ValleySteven C.电话费494562.02
160Peking ExpressElise B.电话费43667.96
161Peking ExpressKelly J.电话费199455.64
162Pho K & KKreaky B.工资930321.30
163Pancho'sCharles L.电话费892934.57
164La Cascada TaqueriaSV B.绩效奖945701.17
165Free Speech Movement CafeEmmanuel K.利息收入791487.49
166Sun Hong Kong RestaurantHayne P.奖金199182.63
167Pancho'sChester R.利息收入105630.46
168Jasmine ThaiFrank E.电话费46840.53
169Fondue FredChris M.电话费75215.16
170Peppermint Grillcat u.午餐补助861472.27
171Viengvilay Thai CuisineErin C.利息收入941311.72
172Pancho'sRonyde R.奖金603782.56
173Jasmine ThaiSteven C.利息收入223892.14
174Pancho'sElise B.午餐补助36541.45
175Peppermint GrillKelly J.工资100469.71
176Viengvilay Thai CuisineKreaky B.利息收入972305.84
177Happy ValleyCharles L.电话费121761.44
178Pancho'sSV B.奖金554869.14
179Peking ExpressEmmanuel K.午餐补助743767.26
180Fondue FredChris M.午餐补助739773.58
181Peppermint Grillcat u.利息收入470961.71
182Fondue FredChris M.奖金914168.37
183Happy Valleycat u.电话费541571.45
184Sun Hong Kong RestaurantErin C.电话费747813.23
185Pancho'sRonyde R.工资838643.84
186Jasmine ThaiElise B.午餐补助116906.23
187Fondue FredKelly J.奖金722424.95
188Peppermint GrillKreaky B.奖金644490.34
189Pancho'sCharles L.午餐补助569665.75
190Jasmine ThaiSV B.奖金880038.11
191Fondue FredEmmanuel K.奖金920473.88
192Fondue FredChris M.电话费845688.94
193Peppermint Grillcat u.电话费858955.41
194Fondue FredChris M.绩效奖938686.52
195Happy Valleycat u.利息收入527159.46
196Peking ExpressErin C.利息收入954028.67
197Pho K & KRonyde R.午餐补助612627.78
198Momo MasalaSteven C.奖金543399.13
199Pancho'sElise B.利息收入401039.35
200La Cascada TaqueriaSV B.绩效奖945701.17

程序执行后,输出的output.xlsx文件格式:

付款人收款人摘要金额笔数总笔数全部摘要
SV B.Viengvilay Thai Cuisine午餐补助496867.88113午餐补助
ian B.Viengvilay Thai Cuisine午餐补助789340.74113午餐补助
Erin C.Viengvilay Thai Cuisine利息收入2076171.21313利息收入、工资
Kreaky B.Viengvilay Thai Cuisine利息收入972305.84113利息收入
Frank E.Viengvilay Thai Cuisine奖金867043.05113奖金
Chris M.Viengvilay Thai Cuisine午餐补助1067448.45313奖金、午餐补助
Michelle C.Viengvilay Thai Cuisine午餐补助126372.01113午餐补助
Ronyde R.Viengvilay Thai Cuisine工资905860.64213工资、绩效奖
SV B.La Cascada Taqueria绩效奖1891402.3428绩效奖
Kelly J.La Cascada Taqueria利息收入397502.2518利息收入
Steven C.La Cascada Taqueria午餐补助10551.2818午餐补助
Hayne P.La Cascada Taqueria电话费320491.5718电话费
Chester R.La Cascada Taqueria午餐补助1191673.2728电话费、午餐补助
Anand J.La Cascada Taqueria绩效奖120278.918绩效奖
SV B.Free Speech Movement Cafe绩效奖468984.5228利息收入、绩效奖
Kreaky B.Free Speech Movement Cafe奖金396860.3918奖金
Elise B.Free Speech Movement Cafe工资229204.618工资
Frank E.Free Speech Movement Cafe电话费554833.8528电话费、利息收入
Emmanuel K.Free Speech Movement Cafe利息收入791487.4918利息收入
Michelle C.Free Speech Movement Cafe电话费363154.4918电话费
SV B.Fondue Fred工资759880.77128工资
ian B.Fondue Fred绩效奖608556.89228绩效奖
Kreaky B.Fondue Fred奖金763411.47128奖金
cat u.Fondue Fred奖金1683364.79328午餐补助、奖金、绩效奖
Hayne P.Fondue Fred工资1637794.75228工资、绩效奖
Emmanuel K.Fondue Fred利息收入1540448.03228利息收入、奖金
Chris M.Fondue Fred利息收入6591140.821028利息收入、电话费、奖金、午餐补助、绩效奖
Chester R.Fondue Fred奖金1540228.06328奖金、绩效奖、工资
Kelly J.Fondue Fred绩效奖1500769.76228奖金、绩效奖
Ronyde R.Fondue Fred利息收入478843.26128利息收入
Michelle C.Fondue Fred电话费84445.31128电话费
Connie L.Sun Hong Kong Restaurant奖金1218674.37213利息收入、奖金
ian B.Sun Hong Kong Restaurant午餐补助708450.8113午餐补助
Erin C.Sun Hong Kong Restaurant电话费889000.92213电话费
Kreaky B.Sun Hong Kong Restaurant奖金553236.99113奖金
Hayne P.Sun Hong Kong Restaurant奖金199182.63113奖金
Emmanuel K.Sun Hong Kong Restaurant电话费930625.38213电话费、奖金
Chris M.Sun Hong Kong Restaurant绩效奖1340397.71313利息收入、绩效奖
Kelly J.Sun Hong Kong Restaurant午餐补助202276.01113午餐补助
SV B.Pancho's奖金904863.31234奖金
Erin C.Pancho's工资1173768.68334利息收入、工资、绩效奖
Kreaky B.Pancho's午餐补助387991.62234奖金、午餐补助
Elise B.Pancho's午餐补助2279398.68534利息收入、工资、午餐补助
Charles L.Pancho's利息收入5243415.16834利息收入、电话费、工资、奖金、午餐补助
Chester R.Pancho's电话费1300301.98534电话费、利息收入、奖金
Hayne P.Pancho's午餐补助230336.9134午餐补助
Frank E.Pancho's奖金513703.8134奖金
Michelle C.Pancho's午餐补助829193.46134午餐补助
Steven C.Pancho's空值1757833.43434电话费、奖金、空值
Ronyde R.Pancho's奖金1442426.4234奖金、工资
ian B.Momo Masala利息收入590357.5619利息收入
Kreaky B.Momo Masala午餐补助1558933.4639奖金、午餐补助、绩效奖
Hayne P.Momo Masala电话费792369.6729电话费、绩效奖
Emmanuel K.Momo Masala绩效奖548395.2819绩效奖
Steven C.Momo Masala奖金543399.1319奖金
Ronyde R.Momo Masala午餐补助950946.0319午餐补助
Connie L.Happy Valley午餐补助1238412.43323奖金、午餐补助
ian B.Happy Valley利息收入225032.17123利息收入
Kelly J.Happy Valley绩效奖552333.25123绩效奖
Kreaky B.Happy Valley奖金259231.87123奖金
cat u.Happy Valley工资3098915.85623电话费、利息收入、工资、午餐补助
Charles L.Happy Valley利息收入2213582.4523利息收入、电话费、奖金、午餐补助、绩效奖
Emmanuel K.Happy Valley奖金467356.72123奖金
Steven C.Happy Valley利息收入731647.84223利息收入、电话费
Ronyde R.Happy Valley午餐补助1686183.9323电话费、利息收入、午餐补助
Anand J.Jasmine Thai利息收入2161478.38318利息收入、工资
SV B.Jasmine Thai电话费1414478.06218电话费、奖金
Erin C.Jasmine Thai利息收入116214.97118利息收入
Elise B.Jasmine Thai电话费889057.09218电话费、午餐补助
Steven C.Jasmine Thai工资830542.76218利息收入、工资
Hayne P.Jasmine Thai奖金919835.19118奖金
Emmanuel K.Jasmine Thai午餐补助369869.21118午餐补助
Frank E.Jasmine Thai午餐补助750323.72318电话费、午餐补助
Kelly J.Jasmine Thai空值58789.61118空值
Ronyde R.Jasmine Thai午餐补助878550.8118午餐补助
Michelle C.Jasmine Thai奖金575971.6118奖金
Hayne P.Tivoli Caffe奖金362271.4112奖金
Ronyde R.Tivoli Caffe利息收入548204.8412利息收入
SV B.Peking Express利息收入927793.68214利息收入、绩效奖
Erin C.Peking Express利息收入954028.67114利息收入
Kelly J.Peking Express电话费199455.64114电话费
Elise B.Peking Express午餐补助3874530.45614利息收入、电话费、午餐补助、绩效奖
Emmanuel K.Peking Express午餐补助743767.26114午餐补助
Steven C.Peking Express电话费187591.63114电话费
Ronyde R.Peking Express电话费626244.13214电话费、利息收入
SV B.Pho K & K电话费188521.05112电话费
Erin C.Pho K & K奖金506099.2112奖金
Kreaky B.Pho K & K工资930321.3112工资
Steven C.Pho K & K奖金86584.79112奖金
Emmanuel K.Pho K & K午餐补助350316.91212绩效奖、午餐补助
Frank E.Pho K & K电话费443264.47112电话费
Kelly J.Pho K & K奖金2816742.48412利息收入、奖金、电话费
Ronyde R.Pho K & K午餐补助612627.78112午餐补助
Anand J.Peppermint Grill工资337198.97218利息收入、工资
Erin C.Peppermint Grill利息收入1042517.91218利息收入、奖金
Kelly J.Peppermint Grill绩效奖150288.23218工资、绩效奖
Kreaky B.Peppermint Grill工资765625.39218工资、奖金
cat u.Peppermint Grill电话费4687030.98718电话费、利息收入、工资、奖金、午餐补助
Emmanuel K.Peppermint Grill奖金164258.96118奖金
Frank E.Peppermint Grill电话费370809.24118电话费
Steven C.Peppermint Grill绩效奖607805.07118绩效奖

源代码20行(其中有6行是测试用时的代码可以去除)如下:

import time, pandas as pd
def tprint(info): print(info); return time.time()
t1 = tprint('正在读取数据,请稍候...')
df = pd.read_excel('data.xlsx', sheet_name='源数据')
t2 = tprint('正在数据计算,请稍候...')
ls, label = [], ('付款人','收款人','摘要','金额','笔数','总笔数','全部摘要')
for 收款人 in set(df.收款人):付款人 = df[df.收款人==收款人].付款人总笔数 = 付款人.shape[0]for 付款人 in set(付款人):数集 = df[(df.收款人==收款人) & (df.付款人==付款人)].fillna('空值')笔数, 金额 = 数集.shape[0], 数集.金额.sum().round(2)摘要,全部摘要 = 数集.摘要.iloc()[0], "、".join(set(数集.摘要))ls.append('~'.join(map(str,(eval(_) for _ in label))).split("~"))
data = pd.DataFrame(ls, columns=label)
data.金额, data.笔数, data.总笔数 = data.金额.astype('float'),data.笔数.astype('int'),data.总笔数.astype('int')
t3 = tprint('正在写入文件,请稍候...')
data.to_excel('output.xlsx', sheet_name='Sheet1',index=False)
t4 = time.time()
print(f'读取耗时:{t2-t1:.3f}s\n计算耗时:{t3-t2:.3f}s\n写入耗时:{t4-t3:.3f}s\n共计耗时:{t4-t1:.3f}s')

测试效果:

正在读取数据,请稍候...
正在数据计算,请稍候...
正在写入文件,请稍候...
读取耗时:0.859s
计算耗时:0.314s
写入耗时:0.063s
共计耗时:1.236s

处理那个30M的文件时,因为列名一样,都不用改代码。实测读取用了58秒,计算用1600秒,共计用时28分钟左右,完美完成筛选任务。

边学边写的代码,可能就根本没用到pandas的精华所在。但也谈谈代码中几个注意点:

1. python 支持中文名变量,直接用列名作变量有好处,省得注释以及想很多变量名称来命名。

2. DataFrame筛选条件的逻辑运算用 & | ,其运算级别高于><==,所以括号不能省。如代码中的: df[(df.收款人==收款人) & (df.付款人==付款人)]

3. 取DataFrame的列,可以用 df['收款人'] 也能用 df.收款人,我觉得用后者更方便点。

4. 源数据“摘要”列中有空单元格,读入DataFrame中后其值为nan,这个起先没注意到代码一直报错。后查询到df有.fillna()方法可以替换掉空值。

5. 求行数可以直接用len(df)求,也可用df.shape()方法返回一个元组:(行数、列数)。

6. 行数据我用了一句代码 '~'.join(map(str,(eval(_) for _ in label))).split("~") 合并后分割成列表。

7. 数值类型的列都要用.astype()转回相应的数值类型,否则得到的.xlsx文件中数值列都是文本型数字(Excel中表现为单元格左上角有绿色小三角),不便于统计合计数。如:
   data.金额 = data.金额.astype('float')
   data.笔数 = data.笔数.astype('int')

(本文完)


附pandas学习图一张:


http://www.ppmy.cn/news/5204.html

相关文章

ffmpeg-AVPacket

目录 引子 翻译一下官方注释&#xff1a; 成员变量&#xff1a; AVBufferRef *buf pts dts data size stream_index flag side_data side_data_elems duration pos opaque opaque_ref time_base 引子 AVPacket是ffmpeg基础且非常重要的数据结构…

Android实现红绿灯检测(含Android源码 可实时运行)

Android实现红绿灯检测(含Android源码 可实时运行) 目录 Android实现红绿灯检测(含Android源码 可实时运行) 1. 前言 2. 红绿灯检测数据集说明 3. 基于YOLOv5的红绿灯检测模型训练 4.红绿灯检测模型Android部署 &#xff08;1&#xff09; 将Pytorch模型转换ONNX模型 &…

可解释机器学习笔记合集

​task01 导论 【学习打卡01】可解释机器学习之导论Task01 预备知识学习 ​task02 ZFNet 【学习打卡】ZFNet深度学习图像分类算法【学习打卡02】可解释机器学习笔记之ZFNet【算法】可解释机器学习-ZFNet&#xff08;Datawhale)Task02 【算法】ZFNet ​task03 CAM 【学习打…

Nginx-反向代理

什么是反向代理 用户直接访问反向代理服务器就可以获得目标服务器的资源。这一过程叫反向代理 如何配置反向代理 修改nginx配置文件 1.切换到nginx的conf路径下操作nginx的配置文件 cd /usr/local/openresty/nginx/conf 1.1防止修改错误可以先备份一下配置文件 cp nginx.…

“专利费用减缓”怎么申请?

在专利申请时&#xff0c;很多申请人对“专利费用减缓”的概念并不了解&#xff0c;或者不太清楚。甚至有很多申请人一听到专利申请可以请求费用减缓&#xff0c;就以为申请专利是不要钱的。当然&#xff0c;这样的理解就存在了很大的偏差了&#xff0c;所以&#xff0c;我们今…

NNDL 2022秋

第一届AI专业&#xff0c;很多课程都是第一次开课&#xff0c;老师和学生都在“摸着石头过河”。 好处是所学内容比较新&#xff0c;跟得上“潮流”&#xff0c;学习意愿比较强。 难处是教学资料相对欠缺&#xff0c;需要学的内容较多&#xff0c;难度较大。 大家经过一学期…

Java多线程-线程的创建(Thread类的基本使用)

文章目录一. 线程和Thread类1. 线程和Thread类1.1 Thread类的构造方法1.2 启用线程的相关方法2. 创建第一个Java多线程程序3. 使用Runnable对象创建线程4. 使用内部类创建线程5. 使用Lambada表达式创建线程6. 多线程并发执行简单演示7. 多线程并发执行的优势二. Thread类的属性…

Html5 canvas创意特效合集

Canvas就像一块画布&#xff0c;我们可以通过调用脚本在Canvas上绘制任意形状&#xff0c;甚至是制作动画。本文就是收集了很多非常富有创意的一些canvas动画特效例子&#xff0c;这些例子都非常适合大家学习。 1.3D篝火动画特效 这款篝火特效是基于 three.js 和 canvas 制作的…