熊猫数据框:groupby,应用函数返回数组并将结果映射回

村庄

让我们考虑一个数据帧:

np.random.seed(1)
df = pd.DataFrame({"x": np.random.random(size=10)})
df["y"] = np.where(df.x < 0.5, 0, 1)

输出:

          x  y
0  0.417022  0
1  0.720324  1
2  0.000114  0
3  0.302333  0
4  0.146756  0
5  0.092339  0
6  0.186260  0
7  0.345561  0
8  0.396767  0
9  0.538817  1

我想添加一个新列z

          x  y  z
0  0.417022  0  0
1  0.720324  1  0
2  0.000114  0  1
3  0.302333  0  2
4  0.146756  0  3
5  0.092339  0  4
6  0.186260  0  5
7  0.345561  0  6
8  0.396767  0  7
9  0.538817  1  1

我发现我可以使用apply函数并尝试map得出结果,但是它不起作用...

z = df.groupby("y").apply(lambda d: np.arange(d["y"].size))
df["z"] = df["y"].map(z)

输出:

          x  y                         z
0  0.417022  0  [0, 1, 2, 3, 4, 5, 6, 7]
1  0.720324  1                    [0, 1]
2  0.000114  0  [0, 1, 2, 3, 4, 5, 6, 7]
3  0.302333  0  [0, 1, 2, 3, 4, 5, 6, 7]
4  0.146756  0  [0, 1, 2, 3, 4, 5, 6, 7]
5  0.092339  0  [0, 1, 2, 3, 4, 5, 6, 7]
6  0.186260  0  [0, 1, 2, 3, 4, 5, 6, 7]
7  0.345561  0  [0, 1, 2, 3, 4, 5, 6, 7]
8  0.396767  0  [0, 1, 2, 3, 4, 5, 6, 7]
9  0.538817  1                    [0, 1]
耶斯列尔

您需要的IIUC cumcount

df['z'] = df.groupby('y')['y'].cumcount()
print df
          x  y  z
0  0.417022  0  0
1  0.720324  1  0
2  0.000114  0  1
3  0.302333  0  2
4  0.146756  0  3
5  0.092339  0  4
6  0.186260  0  5
7  0.345561  0  6
8  0.396767  0  7
9  0.538817  1  1

更通用的解决方案使用transform

df["z"] = df.groupby("y")['y'].transform(lambda d: np.arange(d.size))
print df
          x  y  z
0  0.417022  0  0
1  0.720324  1  0
2  0.000114  0  1
3  0.302333  0  2
4  0.146756  0  3
5  0.092339  0  4
6  0.186260  0  5
7  0.345561  0  6
8  0.396767  0  7
9  0.538817  1  1

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫数据框:按几列分组,应用函数并将结果映射回

来自分类Dev

如何应用将数据框返回到groupby对象的函数

来自分类Dev

将函数应用于数据框GroupBy对象并返回数据框

来自分类Dev

循环到日期并将函数应用于熊猫数据框

来自分类Dev

将任何sklearn结果映射回原始数据帧

来自分类Dev

将行索引映射回原始索引的数据框

来自分类Dev

分配groupby多个索引的结果,应用自定义功能,返回到父数据框

来自分类Dev

Axios数组映射回调

来自分类Dev

用于收集对象属性、进行批处理并将结果映射回对象的 Javascript 库

来自分类Dev

创建熊猫数据框:在numpy上映射函数

来自分类Dev

熊猫groupby申请返回一个数据框

来自分类Dev

编写函数并将结果添加到数据框

来自分类Dev

循环遍历数据框的每一列应用函数并将结果保存为新列

来自分类Dev

熊猫将应用结果转换回原始数据框

来自分类Dev

在pandas数据框中显示多索引数组groupby的结果

来自分类Dev

在pandas数据框中显示多索引数组groupby的结果

来自分类Dev

从函数返回数据框并将其存储在工作空间中

来自分类Dev

从函数返回数据框并将其存储在工作空间中

来自分类Dev

从scipy.pdist(myArray,metric =“ jaccard”)获取结果索引以映射回原始数组?

来自分类Dev

如何将groupby输出(唯一值列表)映射回原始数据帧?

来自分类Dev

如何从应用返回正确格式化的熊猫数据框?

来自分类Dev

如何使用熊猫中使用数据框的两个参数应用lambda的结果来组成带有返回列的数据框

来自分类Dev

从函数返回结果数组

来自分类Dev

将函数应用于熊猫数据框

来自分类Dev

将re函数应用于混合的熊猫数据框

来自分类Dev

迭代熊猫数据框并应用条件函数的更快方法

来自分类Dev

Python数据框应用函数groupby和每列

来自分类Dev

如何重复该过程并将结果存储在新的数据框熊猫中

来自分类Dev

熊猫返回空数据框

Related 相关文章

  1. 1

    熊猫数据框:按几列分组,应用函数并将结果映射回

  2. 2

    如何应用将数据框返回到groupby对象的函数

  3. 3

    将函数应用于数据框GroupBy对象并返回数据框

  4. 4

    循环到日期并将函数应用于熊猫数据框

  5. 5

    将任何sklearn结果映射回原始数据帧

  6. 6

    将行索引映射回原始索引的数据框

  7. 7

    分配groupby多个索引的结果,应用自定义功能,返回到父数据框

  8. 8

    Axios数组映射回调

  9. 9

    用于收集对象属性、进行批处理并将结果映射回对象的 Javascript 库

  10. 10

    创建熊猫数据框:在numpy上映射函数

  11. 11

    熊猫groupby申请返回一个数据框

  12. 12

    编写函数并将结果添加到数据框

  13. 13

    循环遍历数据框的每一列应用函数并将结果保存为新列

  14. 14

    熊猫将应用结果转换回原始数据框

  15. 15

    在pandas数据框中显示多索引数组groupby的结果

  16. 16

    在pandas数据框中显示多索引数组groupby的结果

  17. 17

    从函数返回数据框并将其存储在工作空间中

  18. 18

    从函数返回数据框并将其存储在工作空间中

  19. 19

    从scipy.pdist(myArray,metric =“ jaccard”)获取结果索引以映射回原始数组?

  20. 20

    如何将groupby输出(唯一值列表)映射回原始数据帧?

  21. 21

    如何从应用返回正确格式化的熊猫数据框?

  22. 22

    如何使用熊猫中使用数据框的两个参数应用lambda的结果来组成带有返回列的数据框

  23. 23

    从函数返回结果数组

  24. 24

    将函数应用于熊猫数据框

  25. 25

    将re函数应用于混合的熊猫数据框

  26. 26

    迭代熊猫数据框并应用条件函数的更快方法

  27. 27

    Python数据框应用函数groupby和每列

  28. 28

    如何重复该过程并将结果存储在新的数据框熊猫中

  29. 29

    熊猫返回空数据框

热门标签

归档