栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

计算数据帧组内的差异

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

计算数据帧组内的差异

做您自己描述的事情并不容易,即

df.sort(['ticker', 'date'], inplace=True)df['diffs'] = df['value'].diff()

然后校正边界:

mask = df.ticker != df.ticker.shift(1)df['diffs'][mask] = np.nan

维护您可能会

idx =df.index
在开始时执行的原始索引,然后在结束时可以执行
df.reindex(idx)
,或者如果它是一个巨大的数据帧,请在

df.filter(['ticker', 'date', 'value'])

然后

join
是最后两个数据框。

编辑 :或者,(尽管仍然不使用

groupby

df.set_index(['ticker','date'], inplace=True)df.sort_index(inplace=True)df['diffs'] = np.nanfor idx in df.index.levels[0]:    df.diffs[idx] = df.value[idx].diff()

对于

   date ticker  value0    63      C   1.651    88      C  -1.932    22      C  -1.293    76      A  -0.794    72      B  -1.245    34      A  -0.236    92      B   2.437    22      A   0.558    32      A  -2.509    59      B  -1.01

这将产生:

  value  diffsticker date   A      22     0.55    NaN       32    -2.50  -3.05       34    -0.23   2.27       76    -0.79  -0.56B      59    -1.01    NaN       72    -1.24  -0.23       92     2.43   3.67C      22    -1.29    NaN       63     1.65   2.94       88    -1.93  -3.58


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617751.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号