【Python】DataFrame使用apply()实现多种功能实例

*本文章均为本人数据分析使用的实例,未经允许请勿转载

1. 实现符号/字符替换

import pandas as pd
import numpy as np
#将指定列的符号/字符进行替换
df['value'] = df['value'].apply(lambda x:x.replace(',','.'))
#input:3,10
#output:3.10

#将全文的符号/字符进行替换
st = st.apply(lambda x:x.replace('-',np.nan))
#input:'-'
#output:nan

2. 实现不同列的数值进行比较,并生成新列

#如果一列的数据大于另外一列,则新列的值为1,反之为0
df_st['>ad hoc MTR'] = df_st.apply(lambda x:1 if x['value'] > x['ad hoc MTR'] else 0,axis=1)
df_st['>MTR'] = df_st.apply(lambda x:1 if x['value'] > x['MTR'] else 0,axis=1)
df_st['>JG-MKN'] = df_st.apply(lambda x:1 if x['value'] > x['JG-MKN'] else 0,axis=1)
df_st['>MAC-MKN'] = df_st.apply(lambda x:1 if x['value'] > x['MAC-MKN'] else 0,axis=1)
df_st['>toelatingscrit. Ctgb'] = df_st.apply(lambda x:1 if x['value'] > x['toelatingscrit. Ctgb'] else 0,axis=1)
df_st['>wettelijk'] = df_st.apply(lambda x:1 if x['value'] > x['wettelijk'] else 0,axis=1)
#将以上的数值进行求和
df_st['num_standard_exceed'] = df_st.apply(lambda x:sum(x['>ad hoc MTR':]),axis=1)

3. 使用正则表达式提取数据

import pandas as pd
import re
 
#创建DataFrame
df1 = pd.DataFrame([['2015-03-24'],['2011-07-12'],['2010-02-08']])
 
#使用apply()和lambda进行提取:月份
df1 = df1[0].apply(lambda x:re.findall('\d+-(\d+)-\d+',x)[0])

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WageningenUR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值