如何从另一个数据帧更新一个数据帧的特定列

射手

第一个数据帧是:

   data_date cookie_type   dau  next_dau  dau_7  dau_15
0   20181006    avg(0-d)  2288       NaN    NaN     NaN
1   20181006    avg(e-f)  2284       NaN    NaN     NaN
2   20181007    avg(e-f)  2296       NaN    NaN     NaN

第二个数据帧是:

  data_date cookie_type  next_dau
0  20181006    avg(e-f)       908
1  20181006    avg(0-d)       904

如何从第二个数据帧更新第一个数据帧的 next_dau 我尝试了 combine_first 和 fillna,它们似乎不支持多索引:

cols = ['data_date', 'cookie_type']

    if (frame1 is not None and not frame1.empty):
        frame1.set_index(cols)
        print(frame1)
        print(next_day_dau)
        frame1.combine_first(next_day_dau.set_index(cols))
        frame1.combine_first(dau_7.set_index(cols))
        frame1.combine_first(dau_15.set_index(cols))

最后我在“tianhua liao”的帮助下解决了这个问题:

            frame1.index = frame1.data_date.astype(str) + frame1.cookie_type
            next_day_dau.index = next_day_dau.data_date.astype(str) + next_day_dau.cookie_type
            dau_7.index = dau_7.data_date.astype(str) + dau_7.cookie_type
            dau_15.index = dau_15.data_date.astype(str) + dau_15.cookie_type
            # get_index
            next_day_dau_idx = frame1.index.isin(next_day_dau.index)
            dau_7_idx = frame1.index.isin(dau_7.index)
            dau_15_idx = frame1.index.isin(dau_15.index)
            #
            if any(next_day_dau_idx):
                frame1.loc[next_day_dau_idx, "next_dau"] = next_day_dau.next_dau
            if any(dau_7_idx):
                frame1.loc[dau_7_idx, "dau_7"] = dau_7.dau_7
            if any(dau_15_idx):
                frame1.loc[dau_15_idx, "dau_15"] = dau_15.dau_15
tianhua liao

多索引是一个复杂的索引。

这里有一个简单的方法来解决它。

frame1.index = frame1.data_date.astype(str) + frame1.cookie_type
frame2.index = frame2.data_date.astype(str) + frame2.cookie_type

frame1.loc[frame2.index,"next_dau"] = frame2.next_dau

处理完成后,您可以删除索引。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何从另一个重复的数据帧更新一个数据帧

来自分类Dev

如何从另一个重复的数据帧更新一个数据帧

来自分类Dev

通过将一个数据帧的列与另一个数据帧的行相乘来获取一个数据帧

来自分类Dev

更新 Spark 数据帧以从另一个数据帧填充数据

来自分类Dev

R:用另一个数据帧更新一个数据帧

来自分类Dev

根据与另一个数据帧的比较更新数据帧值

来自分类Dev

如何用另一个数据帧中的列注释一列

来自分类Dev

根据另一个数据帧中的值将数据帧的列相乘

来自分类Dev

如何从R中的另一个数据帧中提取数据帧

来自分类Dev

如何根据另一个数据帧的2个列(开始和结束)中指定的范围来标记一个数据帧的行?

来自分类Dev

如何从另一个减去一个数据帧

来自分类Dev

如何从另一个数据帧中的列创建数据帧,该列用逗号“,”连接

来自分类Dev

如何从 PySpark 中另一个数据帧的列中创建数据帧中的列

来自分类Dev

如何基于另一个数据帧的索引在一个数据帧中创建“ ID”列?

来自分类Dev

如何基于另一个数据帧中的时间间隔在一个数据帧中添加新列

来自分类Dev

如何基于R中的另一个数据帧重命名数据帧的所有列?

来自分类Dev

如何基于R中的另一个数据帧重命名数据帧的所有列?

来自分类Dev

如何根据另一个数据帧的行号转换两列数据帧的内容

来自分类Dev

从一个数据帧到另一个数据帧的数据表操作

来自分类Dev

Pyspark:基于一个列值从另一个数据帧中减去一个数据帧

来自分类Dev

一个数据帧与另一个数据帧的相关矩阵

来自分类Dev

检查一个数据帧中的行是否在另一个数据帧中

来自分类Dev

将一个数据帧与另一个数据帧作为模板逐行合并

来自分类Dev

将一个数据帧切片到另一个数据帧中

来自分类Dev

如何将两个数据帧转换为另一个数据帧?

来自分类Dev

在另一个数据帧中计算一行熊猫数据帧

来自分类Dev

将数据从一个数据帧拖入另一个

来自分类Dev

熊猫使用熊猫数据帧的索引更新同一索引上的另一个数据帧

来自分类Dev

当两个数据帧的列和索引完全相同时,如何通过匹配另一个数据帧的条件来对一个数据帧的数据进行分组?

Related 相关文章

  1. 1

    如何从另一个重复的数据帧更新一个数据帧

  2. 2

    如何从另一个重复的数据帧更新一个数据帧

  3. 3

    通过将一个数据帧的列与另一个数据帧的行相乘来获取一个数据帧

  4. 4

    更新 Spark 数据帧以从另一个数据帧填充数据

  5. 5

    R:用另一个数据帧更新一个数据帧

  6. 6

    根据与另一个数据帧的比较更新数据帧值

  7. 7

    如何用另一个数据帧中的列注释一列

  8. 8

    根据另一个数据帧中的值将数据帧的列相乘

  9. 9

    如何从R中的另一个数据帧中提取数据帧

  10. 10

    如何根据另一个数据帧的2个列(开始和结束)中指定的范围来标记一个数据帧的行?

  11. 11

    如何从另一个减去一个数据帧

  12. 12

    如何从另一个数据帧中的列创建数据帧,该列用逗号“,”连接

  13. 13

    如何从 PySpark 中另一个数据帧的列中创建数据帧中的列

  14. 14

    如何基于另一个数据帧的索引在一个数据帧中创建“ ID”列?

  15. 15

    如何基于另一个数据帧中的时间间隔在一个数据帧中添加新列

  16. 16

    如何基于R中的另一个数据帧重命名数据帧的所有列?

  17. 17

    如何基于R中的另一个数据帧重命名数据帧的所有列?

  18. 18

    如何根据另一个数据帧的行号转换两列数据帧的内容

  19. 19

    从一个数据帧到另一个数据帧的数据表操作

  20. 20

    Pyspark:基于一个列值从另一个数据帧中减去一个数据帧

  21. 21

    一个数据帧与另一个数据帧的相关矩阵

  22. 22

    检查一个数据帧中的行是否在另一个数据帧中

  23. 23

    将一个数据帧与另一个数据帧作为模板逐行合并

  24. 24

    将一个数据帧切片到另一个数据帧中

  25. 25

    如何将两个数据帧转换为另一个数据帧?

  26. 26

    在另一个数据帧中计算一行熊猫数据帧

  27. 27

    将数据从一个数据帧拖入另一个

  28. 28

    熊猫使用熊猫数据帧的索引更新同一索引上的另一个数据帧

  29. 29

    当两个数据帧的列和索引完全相同时,如何通过匹配另一个数据帧的条件来对一个数据帧的数据进行分组?

热门标签

归档