import pandas as pd
import globdata_dir ="/public/data/"# 获取文件后缀为.txt的文件列表
df_all = pd.concat([pd.read_csv(f, sep='\t')for f in glob.glob(data_dir +'*.txt')])print(df_all)
2. 使用 enumerate 函数获取索引和值
# A-K 字母列表
letter =[chr(ord('A')+ i)for i inrange(0,11)]# 输出索引和值for idx, value inenumerate(letter):print(f"{idx}\t{value}")
3. 使用 zip 函数同时遍历多个列表
# 0-10 数字列表
number =[n for n inrange(0,11)]# A-K 字母列表
letter =[chr(ord('A')+ i)for i inrange(0,11)]for number, letter inzip(letter, number):print(f"{letter}: {number}")# 0: A# 1: B# 2: C# 3: D# 4: E# 5: F# 6: G# 7: H# 8: I# 9: J# 10: K
4. 内置函数map + filter 过滤数据
number =[n for n inrange(0,11)]# 获取平方数
squared_numbers =list(map(lambda x: x**2, number)print(squared_numbers)# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]# 获取偶数
even_numbers =list(filter(lambda x: x %2==0, number))print(even_numbers)# [0, 2, 4, 6, 8, 10]
5. 使用concurrent.futures模块实现循环的并发处理,提高计算效率
import concurrent.futures
defsquare(num):return num **2with concurrent.futures.ThreadPoolExecutor()as executor:res =list(executor.map(square, number))print(res)
6. 使用asyncio模块实现异步处理,提高并发性能
import asyncio
import math
asyncdefsqrt(num):return math.sqrt(num)asyncdefcalculate():run_tasks =[sqrt(num)for num in number]results =await asyncio.gather(*run_tasks)print(results)asyncio.run(calculate())
7. 程序运行分析装饰器
import timedefanalysis_time(func):defwarpper(*args,**kwargs):start_time = time.time()res = func(*args,*kwargs)end_time = time.time()print(f"{func.__name__} program run time: {end_time - start_time}s")return resreturn warpper# 并行计算import concurrent.futures
defsquare(num):return num **2@analysis_timedefcalulate(number):with concurrent.futures.ThreadPoolExecutor()as executor:res =list(executor.map(square, number))return resprint(calulate(number))# calulate program run time: 0.002947568893432617s# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]