summary

spark:
重命名表头字段
封装预处理函数


python:
pivot
crosstab
pipeline
封装预处理函数
matplotlib
seaborn


pandas在进行merge操作时候,会出现大量NaN,主要是由于left_df与right_df关联的字段类型不一致,需要在数据读入时统一指定为str类型
若加上indicator=True参数设置,会生成新的一列"_merge"为category类型,取值["left_only","both"]
在对dataframe某列使用lambda函数判断是否为空时,使用pd.isnull();在判断为非空时使用pd.notnull()
例如:如果Mobile非空则,is_yn_border_phonenumber赋值为1,否则赋值为0,写法如下:
df1['is_yn_border_phonenumber']=df1['Mobile'].apply(lambda x: 1 if pd.notnull(x) else 0)
##参考资料: https://stackoverflow.com/questions/37060385/pandas-apply-lambda-function-null-values


以上操作主要应用于如下场景,判断df1中某个字段取值是否落在在df2中某个字段的取值范围内
可以先使用merge中的left join操作,写法如下,此处的编写逻辑与SQL中的left join写法类似
df1 = pd.merge(data, df, how='left', left_on='receiver_phonenumber_section', right_on='Mobile',indicator=True)
然后再判断Mobile字段是否为空,若非空,则对应的data中的receiver_phonenumber_section字段取值落在df中的Mobile相应区间内
若为空,则对应的data中的receiver_phonenumber_section字段取值没有落在df中的Mobile相应区间内
此时就可以使用lambda封装判断是否为空,增加一列字段is_yn_border_phonenumber,用于验证数据


转载于:https://my.oschina.net/kyo4321/blog/3045192

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值