【Python函数&遍历】

本文详细介绍了如何在Python中使用for循环、lambda函数和apply/map方法进行数据遍历、处理异常值、离散型变量转换以及字典映射。内容涉及统计计算和数据类型转换,如pandas中的to_numeric和pivot_table函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

for 遍历循环

data = [i for i in range(0,20) if i%2 ==1]

#data['content']中'IC'开头的个数
total_sum = 0
for i in data['content'].keys():
    if i.startswith('IC'):
        total_sum += 1

zhibiao_list = list(data['content'].keys())
zhibiao_set = set([i.split('_')[0] for i in zhibiao_list])
dict1 = {}
for i in zhibiao_set:
    for j in data['content'].keys():
        if i in j:
            dict1[i] = dict1.get(i,0) + 1 #对于首次出现,dict1中没有这个键,所以就是0

lambda函数

pd.to_numeric转换为数值型变量
set()

data['应收金额'] = pd.to_numeric(data['应收金额'].apply(lambda x: str(x).strip('Y').strip('^')),\
              errors = 'coerce')
data['实收金额'] = pd.to_numeric(data['实收金额'].apply(lambda x: str(x).replace(' ','')),\
    errors = 'coerce')

data['应收金额'].apply(lambda x: str(x).strip('Y').strip('^')).astype(float)
data['实收金额'].apply(lambda x: str(x).replace(' ','')).astype(float)

df3 = pd.pivot_table(data = df2,index ='年份',columns = '国家',values = '企业',
               aggfunc= lambda x: set(x))

在这里插入图片描述

apply(f)

P99,P1异常值替换

# 用95分位数和1分位数替换
#计算P1和P95
P_min =df['Age'].quantile(0.01)
P_max = df['Age'].quantile(0.95)

def P1_P99(x):
    if x > P_max:
        return P_max
    elif x < P_min:
        return P_min
    else:
        return x
#先创建一个新变量,使用apply进行替换
df['Age_new'] = df['Age'].apply(P1_P99)

离散型变量处理

def f(x):
    if x=='high':
        return '高层'
    elif x=='middle':
        return '中层'
    elif x=='low':
        return '底层'
    else:
        return '缺失值'
df['floor']=df['floor'].apply(f)

统计计算

df['price']=df['price'].apply(np.log)#取对数

map(dict)

英文名改中文名

dict1={
     'chaoyang':"朝阳",
     'dongcheng':"东城",
     'fengtai':"丰台",
     'haidian':"海淀",
     'shijingshan':"石景山",
     'xicheng':"西城"
     }
df['dist']=df['dist'].map(dict1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值