创建一个新的pandas列,该列基于id从一行中获取值

阿帕沃

我该如何在熊猫数据框中进行跟踪?我有一个时间序列,我想要创建一个新列,该列基于具有与前一个纪元的值相同的id值。见图片。我要执行以下操作:

  1. 创建名为的新列previous_epoch_stage
  2. 对于每个id
  • previous_epoch_stagestageepoch-1行中的值填充
  • 但是如果epoch == 1,则previous_epoch_stagestage同一行中的值填充value

在此处输入图片说明

短信

通常,如果只需要访问的滞后版本,则无需创建额外的列epochdf.groupby('id')然后,您只需['epoch'].shift(1)在每个分组数据框中引用即可

但如果你真的坚持这样的话,使用解决方案布尔索引shift()并且fillna()

# Do the default lagged assignment for all rows where 'epoch' != 1
df['previous_epoch_stage'] = df.groupby('id')['epoch'].shift(1)
# Now fill NA's in-place from the 'stage' column
df['previous_epoch_stage'].fillna(df['stage'], inplace=True)
# and if you want to reverse fillna and the NaNs coercing your ints to floats:
df['previous_epoch_stage'] = df['previous_epoch_stage'].astype(int)

笔记:

  1. 如果我们假设/要求行从1开始按递增顺序排序,则可以快捷方式“previous_epoch_stage使用stageepoch-1行中的值填充epochdf['stage'].head()
  2. 还有一个有用的辅助函数df.where(cond, other, ...)](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.where.html)进行向量化if-else,在这种情况下other,需要是一个函数(“可调用”),但在groupby上不能很好地发挥作用,因此请使用布尔索引
  3. .shift()很简洁,因为它允许您自定义fill_value=NaN或指定任意值periods(+ ve或-ve)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何基于另一个 DataFrame 中的列在 Pandas DataFrame 中创建新列?

来自分类Dev

Pandas Dataframe:创建一个新列,并基于两个不同的列在匹配的行中插入一个值

来自分类Dev

将多个值合并到一个新列中的一行 Pandas Python

来自分类Dev

如何从熊猫数据框中的当前行中减去上一行,以创建一个新列以每个名称重新启动该过程?

来自分类Dev

如何遍历Pandas中的列值并基于同一行中多个列的值创建新的观察值?

来自分类Dev

就最低的计算复杂度而言,如何创建一个新的pandas列,该列将基于另一列增加一定数量

来自分类Dev

如何创建基于同一行中另一列的值命名的新列?

来自分类Dev

在使用sql中的一行的值定义新列之后,我想要一个新列,该列将是这些列的总和

来自分类Dev

从一个表基于两列获取数据

来自分类Dev

如何创建一个新的DataFrame,其中每一列代表一个实例在上一个DataFrame的一行中的出现

来自分类Dev

如何为 sas 中的每一行分组 50 列并为其值创建一个新列?

来自分类Dev

R-如何基于同一行另一列的值从列中获取值

来自分类Dev

如何在 excel 中创建一个公式来搜索行中的值,然后从该列中的另一个单元格中获取值?

来自分类Dev

从一行中的两行获取值

来自分类Dev

MySQL-如何从一个表的一行中仅选择两列

来自分类Dev

基于多列创建一个新列

来自分类Dev

如何从一个创建新列

来自分类Dev

使用每一行的非空值创建一个新列

来自分类Dev

使用XPath,从一行中获取一个按钮,该按钮具有一个带有特定文本的单元格

来自分类Dev

向R中的数据框添加一个新列,该列包含每一行中最频繁的值

来自分类Dev

如何从一个基于另一个数组的数组中获取值?

来自分类Dev

在MySQL中,如何从一个表中获取2列,并在一行中从另一表中获取2行,作为另一表中的列?

来自分类Dev

创建新列,该列是对 Pandas 中数据框每一行满足条件的行中有多少条目的计数

来自分类Dev

DataFrame中的新列基于另一个DataFrame中的行和列

来自分类Dev

从自身和该列中的所有行中减去该列中的第一行,对于R中除一个以外的所有列

来自分类Dev

使用 mutate 创建一个新列,它是数据框 (dplyr) 中每一行的一组指定列的内容的函数

来自分类Dev

在R中基于多个列创建一个列

来自分类Dev

在R中基于多个列创建一个列

来自分类Dev

根据其他列行中的过滤值,在pandas数据框中创建一个新列

Related 相关文章

  1. 1

    如何基于另一个 DataFrame 中的列在 Pandas DataFrame 中创建新列?

  2. 2

    Pandas Dataframe:创建一个新列,并基于两个不同的列在匹配的行中插入一个值

  3. 3

    将多个值合并到一个新列中的一行 Pandas Python

  4. 4

    如何从熊猫数据框中的当前行中减去上一行,以创建一个新列以每个名称重新启动该过程?

  5. 5

    如何遍历Pandas中的列值并基于同一行中多个列的值创建新的观察值?

  6. 6

    就最低的计算复杂度而言,如何创建一个新的pandas列,该列将基于另一列增加一定数量

  7. 7

    如何创建基于同一行中另一列的值命名的新列?

  8. 8

    在使用sql中的一行的值定义新列之后,我想要一个新列,该列将是这些列的总和

  9. 9

    从一个表基于两列获取数据

  10. 10

    如何创建一个新的DataFrame,其中每一列代表一个实例在上一个DataFrame的一行中的出现

  11. 11

    如何为 sas 中的每一行分组 50 列并为其值创建一个新列?

  12. 12

    R-如何基于同一行另一列的值从列中获取值

  13. 13

    如何在 excel 中创建一个公式来搜索行中的值,然后从该列中的另一个单元格中获取值?

  14. 14

    从一行中的两行获取值

  15. 15

    MySQL-如何从一个表的一行中仅选择两列

  16. 16

    基于多列创建一个新列

  17. 17

    如何从一个创建新列

  18. 18

    使用每一行的非空值创建一个新列

  19. 19

    使用XPath,从一行中获取一个按钮,该按钮具有一个带有特定文本的单元格

  20. 20

    向R中的数据框添加一个新列,该列包含每一行中最频繁的值

  21. 21

    如何从一个基于另一个数组的数组中获取值?

  22. 22

    在MySQL中,如何从一个表中获取2列,并在一行中从另一表中获取2行,作为另一表中的列?

  23. 23

    创建新列,该列是对 Pandas 中数据框每一行满足条件的行中有多少条目的计数

  24. 24

    DataFrame中的新列基于另一个DataFrame中的行和列

  25. 25

    从自身和该列中的所有行中减去该列中的第一行,对于R中除一个以外的所有列

  26. 26

    使用 mutate 创建一个新列,它是数据框 (dplyr) 中每一行的一组指定列的内容的函数

  27. 27

    在R中基于多个列创建一个列

  28. 28

    在R中基于多个列创建一个列

  29. 29

    根据其他列行中的过滤值,在pandas数据框中创建一个新列

热门标签

归档