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

Pandas中这个账龄划分的 有没有什么简便的方法可以实现?

会当凌绝顶,一览众山小。

大家好,我是Python进阶者。

一、前言

前几天在Python最强王者交流群【哎呦喂  是豆子~】问了一个Python处理Excel数据的问题。问题如下:大佬们 请问下 这个账龄划分的 有没有什么简便的方法可以实现?自己做的这太繁琐了

代码如下:

'''

项目 账龄天数

B 12

C 75

E 92

D 48

A 46

'''

data  = pd.read_clipboard()

data['小于30天'] = data.apply(lambda row: row['项目'] if row['账龄天数'] < 30 else '' ,axis =1)

data['30-90天'] = data.apply(lambda row: row['项目'] if (row['账龄天数'] > 30) & (row['账龄天数'] < 90) else '' ,axis =1)

data['90以上'] = data.apply(lambda row: row['项目'] if row['账龄天数'] > 90 else '' ,axis =1)

data

二、实现过程

这里【瑜亮老师】、【隔壁山楂】、【吴超建】和【猫药师Kelly】都给了一个思路,如下图所示:pd.cut你值得拥有。

如果上面那个例子看的难以理解的话,可以看下【鶏啊鶏。】给出的示例:

不过粉丝还是遇到了个问题:但是不是要返回这个区间呢  是要把项目列的数据填到对应区间去呢 这一步有没有什么简便的办法?

这里【隔壁山楂】给出了具体代码,如下所示:

后来【瑜亮老师】还给了一个最直观且简单的思路是这样的:

df['小于30天'] = df['项目'].where(df['天数'] < 30, '')

df['30-90天'] = df['项目'].where((df['天数'] >= 30) & (df['天数'] <= 90), '')

df['90天以上'] = df['项目'].where(df['天数'] > 90, '')

只适用于本需求。如果划分的区间很多,就不适合

方法还是非常多的。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券