Python groupby - 根据其他列中的值创建一个新列

绿洲

我有一个非常大的数据框。
我想先对“id”列进行分组。
然后根据其他现有列创建一个新列“reply_time”。

import pandas as pd
import numpy as np

id = ['793601486525702000','793601486525702000','793601710614802000','793601355214561000','793601355214561000','793601355214561000','793601355214561000','788130215436230000','788130215436230000','788130215436230000','788130215436230000','788130215436230000']
time = ['11/1/2016 16:53','11/1/2016 16:53','11/1/2016 16:52','11/1/2016 16:55','11/1/2016 16:53','11/1/2016 16:53','11/1/2016 16:51','11/1/2016 3:09','11/1/2016 3:04','11/1/2016 2:36','11/1/2016 2:08','11/1/2016 0:28']
reply = ['3','3','0','3','3','2','1','3','2','3','3','1']

df = pd.DataFrame({"id": id, "time": time, "reply": reply})

        id                 time       reply 
793601486525702000  11/1/2016 16:53     3       
793601486525702000  11/1/2016 16:53     3       
793601710614802000  11/1/2016 16:52     0       
793601355214561000  11/1/2016 16:55     3       
793601355214561000  11/1/2016 16:53     3       
793601355214561000  11/1/2016 16:53     2       
793601355214561000  11/1/2016 16:51     1   
788130215436230000  11/1/2016 3:09      3       
788130215436230000  11/1/2016 3:04      2       
788130215436230000  11/1/2016 2:36      3       
788130215436230000  11/1/2016 2:08      3       
788130215436230000  11/1/2016 0:28      1   

这个新列“reply_time”中有两种类型的值。

  1. 'time':先分组'id'列,如果reply = '1',则返回reply = '2'的'time'值。
  2. 'na':如果不满足上述条件,则应将剩余的行分配给 'na'。

在这种情况下,我的输出数据帧将是:

        id                 time       reply   reply_time
793601486525702000  11/1/2016 16:53     3        na
793601486525702000  11/1/2016 16:53     3        na
793601710614802000  11/1/2016 16:52     0        na
793601355214561000  11/1/2016 16:55     3        na
793601355214561000  11/1/2016 16:53     3        na
793601355214561000  11/1/2016 16:53     2        na
793601355214561000  11/1/2016 16:51     1    11/1/2016 16:53
788130215436230000  11/1/2016 3:09      3        na
788130215436230000  11/1/2016 3:04      2        na
788130215436230000  11/1/2016 2:36      3        na
788130215436230000  11/1/2016 2:08      3        na
788130215436230000  11/1/2016 0:28      1    11/1/2016 3:04 

我不知道实现这一目标的最佳方法。任何人都可以帮忙吗?

提前致谢!

贝尼

尝试merge切片后replace

yourdf=df.merge(df.query("reply=='2'").replace({'reply':{'2':'1'}}).rename(columns={'time':'reply_time'}),how='left')

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

应用Groupby后,根据不同的列值选择一个列值

来自分类Dev

Python Pandas groupby与按列过滤的其他行的差异

来自分类Dev

根据条件使用python中另一列的值创建新列

来自分类Dev

Python Pandas Groupby根据索引重置值

来自分类Dev

python dataframe groupby并追加新列

来自分类Dev

Python:Pandas:如何根据Groupby在另一列中查找最大值

来自分类Dev

从Groupby创建新的Pandas列并划分其他列

来自分类Dev

Python中的散点图groupby列

来自分类Dev

如果其他条件在python中在dataframe中创建一个新列

来自分类Dev

使用groupby键创建另一个列pandas python

来自分类Dev

了解Python Pandas中的groupby()

来自分类Dev

Pyspark:在groupby中创建一组值的新列

来自分类Dev

Python-根据其他列的条件创建新列

来自分类Dev

根据其他列中的值在python 3(pandas)数据框中创建新列

来自分类Dev

python pandas获取列的最后一个值不同于其他值

来自分类Dev

Python groupby-根据其他列中的条件更改列值

来自分类Dev

用于groupby的Python列层次结构创建

来自分类Dev

在Pyspark中的groupby上创建一个新的计算列

来自分类Dev

根据其他列在python pandas数据框中创建子列表的最大值

来自分类Dev

使用Groupby构造一个具有其他列的值计数的数据框

来自分类Dev

创建一个新列并使用groupby开始为每个组分配值

来自分类Dev

Python Pandas:根据另一个数据框的类别值创建新列

来自分类Dev

根据其他列R中的不同值创建一个新列R

来自分类Dev

根据 groupby 值向 Pandas 数据框添加一个新列

来自分类Dev

python pandas:根据列表中列的另一个值设置列的值

来自分类Dev

pandas 数据框创建一个新列,其值基于另一列上的 groupby sum

来自分类Dev

python/dataframe - groupby 列创建列表

来自分类Dev

Python - Groupby 一个 DataFrameGroupBy 对象

来自分类Dev

Python Dataframe - 根据现有列值的长度创建一个具有值的新列

Related 相关文章

  1. 1

    应用Groupby后,根据不同的列值选择一个列值

  2. 2

    Python Pandas groupby与按列过滤的其他行的差异

  3. 3

    根据条件使用python中另一列的值创建新列

  4. 4

    Python Pandas Groupby根据索引重置值

  5. 5

    python dataframe groupby并追加新列

  6. 6

    Python:Pandas:如何根据Groupby在另一列中查找最大值

  7. 7

    从Groupby创建新的Pandas列并划分其他列

  8. 8

    Python中的散点图groupby列

  9. 9

    如果其他条件在python中在dataframe中创建一个新列

  10. 10

    使用groupby键创建另一个列pandas python

  11. 11

    了解Python Pandas中的groupby()

  12. 12

    Pyspark:在groupby中创建一组值的新列

  13. 13

    Python-根据其他列的条件创建新列

  14. 14

    根据其他列中的值在python 3(pandas)数据框中创建新列

  15. 15

    python pandas获取列的最后一个值不同于其他值

  16. 16

    Python groupby-根据其他列中的条件更改列值

  17. 17

    用于groupby的Python列层次结构创建

  18. 18

    在Pyspark中的groupby上创建一个新的计算列

  19. 19

    根据其他列在python pandas数据框中创建子列表的最大值

  20. 20

    使用Groupby构造一个具有其他列的值计数的数据框

  21. 21

    创建一个新列并使用groupby开始为每个组分配值

  22. 22

    Python Pandas:根据另一个数据框的类别值创建新列

  23. 23

    根据其他列R中的不同值创建一个新列R

  24. 24

    根据 groupby 值向 Pandas 数据框添加一个新列

  25. 25

    python pandas:根据列表中列的另一个值设置列的值

  26. 26

    pandas 数据框创建一个新列,其值基于另一列上的 groupby sum

  27. 27

    python/dataframe - groupby 列创建列表

  28. 28

    Python - Groupby 一个 DataFrameGroupBy 对象

  29. 29

    Python Dataframe - 根据现有列值的长度创建一个具有值的新列

热门标签

归档