更多pythonic方式-熊猫数据框操作

时间:2018-10-07 21:36:54

标签: python pandas performance dataframe series

说我有一个名为from discord.utils import get reactions = ['123', '456', ''] @commands.command(pass_context=True) async def ping(self, ctx): msg = "Pong {0.author.mention}".format(ctx.message) reply = await self.bot.say(msg) for emoji_id in reactions: emoji = get(ctx.server.emojis, name=emoji_id) await bot.add_reaction(reply, emoji or emoji_id) # If emoji is None, then emoji_id is likely a unicode emoji 的数据框,如下所示:

id .......... 日期 .......... 最小日期 ... ....... max_date

1 .......... 2016/01/01 .......... 2017/01/01 .......... 2018/07/01 2 .......... 2017/02/02 .......... 2017/01/01 .......... 2017/04/01 3 .......... 2016/05/01 .......... 2016/01/01 .......... 2016/07/01

我想添加一个名为vals的列,如果within_rangeTruedate之间,否则显示min_date,则显示max_date。 / p>

这是我的代码,但想知道是否有更有效的方法:

False

2 个答案:

答案 0 :(得分:3)

您可以使用pd.Series.between

vals['within_range'] = vals['date'].between(vals['min_date'], vals['max_date'])

答案 1 :(得分:1)

那不只是:

vals['within_range'] = (
    vals['date'] >= vals['min_date'] &
    vals['date'] <= vals['max_date']
)