首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将(map)函数应用于某些Pandas数据元素

将(map)函数应用于某些Pandas数据元素
EN

Stack Overflow用户
提问于 2016-01-20 06:36:21
回答 2查看 1.3K关注 0票数 0

我试图仅在下面的dataframe中的日期时间单元格上应用时间折扣函数。第一列有一个用户ID,分散在其余的数据中,是熊猫的日期、时间条目。

我想要使用的时间折扣函数依赖于dataframe中的元素与其他时间之间的时间增量。如果t是time t=g.ix[11:,6],那么h是一些time_deltas h=t-g[g.ix[:,1:]!=0]的数据格式,如下所示。

可以应用这个函数吗?

代码语言:javascript
复制
def calc_time_discount(t_delta):
        t_delta=t_delta.days
        if t_delta <= 14:
                d=18.375/(t_delta-24.5)+1.75
        else:
                d=0
        return d

对于h,所有的日期时间条目(而不是将np.nans本身更改为日期本身)都会产生一个折扣因子(它恰好是介于1到0之间的一个值),我可以将它存储在与h(或g)相同大小的新数据中?

在20+堆栈溢出问题中,我已经看过的主题中没有提到如何将函数应用到dataframe的某些元素。

优步简单代码共享

这是一个用于加载的带有函数和g.pkl的zip (我保证它中没有任何病毒)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-12 19:47:30

您应该尝试只将函数应用于非空元素,如下所示:

代码语言:javascript
复制
h.apply(lambda x: my_func(x) if(np.all(pd.notnull(x[1]))) else x, axis = 1)
票数 1
EN

Stack Overflow用户

发布于 2016-07-12 15:56:22

这是熊猫函数notnull,对我的一个表进行非零检查。表bookdates_charge1_df由两列组成:BookDateCharge1

我将表赋值给自己,但只在检查了“Charge1`1”的元素“非空”之后。

回忆一下'Charge1‘是一个系列(一维数组,例如单列)。因此,必须应用这一功能

代码语言:javascript
复制
bookdates_charge1_df = bookdates_charge1_df[
    bookdates_charge1_df.Charge1.notnull()
]

如果你想做

代码语言:javascript
复制
bookdates_charge1_df = bookdates_charge1_df[
    'Charge1'.notnull()
]

解释器会抱怨字符串没有属性'notnull‘。因为它没有。(我不知道你尝试了什么,但我只是加上这个,以防你尝试过。下一次,请添加您尝试过的!)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34893080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档