首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python推导式循环遍历

在Python中,有一种从其他列表创建列表的方式,称为列表推导。例如:

上图7中的代码从列表x直接生成列表y,而列表y中的数值是列表x中对应值的平方。下面的代码使用了range()函数,得到同样的结果:

也可以是集,例如:

还可以添加if语句:

上图10中的代码将序列中4的倍数平方,得到新序列。

甚至可以嵌套for语句:

Python 推导式实用实列:

import pandas as pd

from pathlib import Path

import openpyxl

#%% 普通多文件汇总 - for

files = Path('案例 1').glob('*.xlsx')

dfs = []

for f in files:

dfs.append(pd.read_excel(f))

df = pd.concat(dfs)

df

#%% 普通多文件汇总 - 推导式

files = Path('案例 1').glob('*.xlsx')

dfs = [

pd.read_excel(f)

for f in files

]

df = pd.concat(dfs)

#%%

cols = '姓名 性别 部门 销售额'.split()

dfs = (

pd.read_excel(n,header=None)

for n in Path('案例 1').glob('*.xlsx')

)

dfs = [reset_header(df,cols) for df in dfs]

df = pd.concat(dfs)

df

#%%

这时候可能就需要用 py 的遍历,比如

前缀是 text_ 的列

cols = [c for c in df.columns if c.startwith('text_')]

df[cols].astype(str)

f_range=range(1,nums)

s_range=range(1,31)

vs=((f,s) for finf_range for s ins_range)

res=pd.DataFrame.from_records(itertools.islice(vs,nums),columns=['考场号','座位号'])

strcols_func = {

c : 'first'

for c in x_df.columns                                        匹配查找里的

if is_string_dtype(x_df[c]) and c not in keys

new_values={                                                    替换查找里的

c:f'问题'

for c in df.columns

def ap_to_excel(x_df):

x_df.to_excel(f'.xlsx')

df.groupby('班级').apply(ap_to_excel)      groupby()有多少个相同的班级就分多少个表,这也是一个遍历。

apply(ap_to_excel)某个班在总表里有多少条记录,撤分后的表就有多少个记录,这也一种遍历

df = pd.read_excel('titanic_full.xlsx')

def each_船舱等级(xdf, wb):

grade = xdf.name

xdf.to_excel(wb, f'船舱等级()')

def each_性别(xdf, wb):

sex = xdf.name

with pd.ExcelWriter(f"()需求3(pd).xlsx") as ew:

xdf.groupby('船舱等级').apply(each_船舱等级, ew)

df.groupby(["性别"]).apply(each_性别, ew)

这个代码也含有非常丰富的遍历含义

                                                    编辑:渡江云

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220224A043KX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券