我是外企外包,男朋友以为我是正编,跟他坦白了会被分手吗?
刚刷到个贴子,说有网友在外企做外包,男朋友还以为她是正编,担心坦白了会被分手。
还有人吐槽两年前被裁后,阿里程序员前任态度直接变冷。
外包和正编,圈内人都懂,工资待遇、身份认同确实差不少,但说到底,这些标签真有那么重要吗?网友们的回复里,有的说现实就这样,有的劝坦诚相待。我倒觉得,职场就是打怪升级,外包也能成长,只是路更难走点而已。感情里看重职位、身份,多少有点市侩,不过说实话,谁不想找个靠谱又体面的伴侣呢?
自己的价值得靠自己持续更新,别让外在的“正编/外包”把你卡死了。【备注:文末可领最新资料】
面试题:可疑银行账户
我们组那个小李,他说他银行卡又被银行短信提示有异常交易了,搞得他一晚上都睡不着。说实话现在这种银行可疑账户的检测真不是光靠运气,得用点算法。反正我趁着夜深睡不着,脑子里一直琢磨着,要是用Python写一个算法,怎么帮银行把这些“有问题”的账户筛出来。
其实你们想一想啊,这种“可疑账户”吧,它一般不是突然就冒出来的,经常都是有一连串异常行为,比如短时间内多次大额转账、频繁收款又马上转出,或者跟一堆陌生账户反复交易,银行风控其实都盯着这些。最简单那种,比如一天之内账户进账次数或者金额远高于平时,肯定不对劲对吧?
那天晚上我回家还翻了下之前写的Python脚本,主要思路其实很直白:首先得拿到账户的所有交易流水,搞成个DataFrame,别问为啥不用数据库,图省事。你就用pandas把流水表读进来,然后按照账户分组,统计一下每个账户在一段时间内的交易频率和金额。代码大概长这样:
import pandas as pd
# 这假设有个CSV,列名类似:account_id, timestamp, amount, type
df = pd.read_csv('transactions.csv')
# 假设我们只关心最近30天
df['timestamp'] = pd.to_datetime(df['timestamp'])
recent = df[df['timestamp'] > pd.Timestamp.now() - pd.Timedelta(days=30)]
# 按账户分组,算一下这30天的交易次数和总金额
stats = recent.groupby('account_id').agg({
'amount': ['count', 'sum'],
})
# 拆平列名
stats.columns = ['tx_count', 'total_amount']
stats = stats.reset_index()
# 简单阈值,实际生产肯定比这复杂
SUSPICIOUS_COUNT = 50# 比如30天超过50次交易就可疑
SUSPICIOUS_AMOUNT = 200000# 金额超20万也得查查
# 标记可疑账户
stats['suspicious'] = ((stats['tx_count'] > SUSPICIOUS_COUNT) | (stats['total_amount'] > SUSPICIOUS_AMOUNT))
# 拿出可疑的
suspicious_accounts = stats[stats['suspicious']]
print(suspicious_accounts)
我当时就是在厨房边泡面边敲的,没啥优雅代码,反正能跑就行。其实很多风控场景都比这复杂多了,人家会搞什么“社交网络分析”,比如可疑账户之间互相转账,有那种“蜘蛛网”结构的交易链,甚至还用机器学习建模型——但我琢磨着,有时候最实用还是人工加点经验规则,先把明显异常的抓出来,剩下那点再用模型慢慢啃。
对了,说到异常交易,有个小细节,得过滤下那种大额工资或者公司发奖金那种,一刀切容易误伤。我们以前踩过坑,就是周五公司批量发工资,结果一堆人都被列成可疑了,HR都快跟风控打起来了...后来就得把企业账户转账那种先剔除掉。
还有啊,有人总喜欢问怎么实时监控,其实你只要把这段逻辑丢到定时任务或者流处理里就行,每隔几分钟扫一遍,一旦发现可疑账户,立马预警,甚至能自动冻结。其实银行自己也烦,老有客户喊为什么无故卡被封,其实背后就是算法在搞事...
-END-
我为大家打造了一份RPA教程,完全免费:https://www.songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领