使用逻辑索引时,大熊猫仅应用返回第一个值

太空潜水员

我创建两个数据框:

data = [['John'], ['Mary']]
df1 = pd.DataFrame(data, columns = ['Name'])
df1['Height'] = 0

data = [['John', 5], ['Mary', 6]]
df2 = pd.DataFrame(data, columns = ['Name', 'Height'])

df1

Output:

       Name  Height
    0  John  0
    1  Mary  0

df2

Output:
       Name  Height
    0  John  5
    1  Mary  6

现在,我尝试使用df2中的值填充df1的高度:

df1['Height'] = df1.apply(lambda row: df2[df2.Name == row.Name]['Height'], axis = 1)

df1

Output:
       Name  Height
    0  John  5
    1  Mary  Nan

为什么只有名字(约翰)填写了身高?不应该apply()遍历df1的所有行并从df2返回高度(其中df2与df1的当前行中的名称匹配)吗?

广晃

问题是df2[df2.Name == row.Name]['Height']返回具有不同索引的序列。当熊猫连接这些系列时,会产生不同的列。特别是:

df1.apply(lambda row: df2[df2.Name == row.Name]['Height'], axis = 1)

返回:

     0    1
0  5.0  NaN
1  NaN  6.0

看起来Pandas在执行此操作时需要第一列进行分配:

df['Height'] = ...

要修复代码,您需要提取单个值:

df1['Height'] = df1.apply(lambda row: df2[df2.Name == row.Name]['Height'].iloc[0], axis = 1)

但是,这当然不是解决问题的最佳方法。您应该看看mapmerge例如:

df1['Height'] = df1['Name'].map(df2.set_index('Name')['Height'])

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得两个大熊猫指数的差异,而仅求第一个大熊猫指数的差异?

来自分类Dev

将两个大熊猫数据框与第一个索引相连吗?

来自分类Dev

如何执行这样的大熊猫聚合:删除nan并连接到第一个?

来自分类Dev

列表仅返回第一个值

来自分类Dev

getElementById仅返回第一个元素的值

来自分类Dev

数组函数仅返回第一个值

来自分类Dev

合并熊猫数据框时如何仅使用第一个匹配项?

来自分类Dev

基于与使用大熊猫另一个小区的比较在每个小区变化值

来自分类Dev

使用注入仅返回第一个值并想要总计

来自分类Dev

使用STRING_SPLIT时,IN仅匹配第一个值

来自分类Dev

从带有熊猫的列中提取值时,无法仅检索遇到的第一个值

来自分类Dev

索引熊猫数据框以返回每天的第一个数据点

来自分类Dev

preg_match_all仅返回索引为0的第一个数组,而不返回索引为1的第一个数组

来自分类Dev

如何获得大熊猫系列中下一个非NaN编号的索引?

来自分类Dev

将重复的索引合并为一个大熊猫

来自分类Dev

如何索引过去一个月的大熊猫?

来自分类Dev

大熊猫每天将小时(仅小时)放入一个数据框中

来自分类Dev

Foreach循环仅返回多维数组PHP上的第一个索引

来自分类Dev

Laravel WhereIn数组仅返回第一个索引结果

来自分类Dev

获取带有偏移索引的熊猫数据框中的列的第一个值

来自分类Dev

如何仅替换数据帧熊猫中最大值的第一个实例?

来自分类Dev

Python函数仅返回第一个值,而不返回数据框

来自分类Dev

按熊猫数据框唯一的第一个值分组 - 返回 numpy 数组

来自分类Dev

比较两个对象,仅返回第一个对象的匹配值

来自分类Dev

如何编写一个遍历大熊猫数据框组并应用分层条件的函数?

来自分类Dev

生成列表,但仅显示第一个索引

来自分类Dev

Bash数组仅执行第一个索引

来自分类Dev

Wordpress ACF选择:动态使用类别作为选择时,仅返回第一个对象

来自分类Dev

大熊猫:从现有的列值创建一个新的数据框

Related 相关文章

  1. 1

    如何获得两个大熊猫指数的差异,而仅求第一个大熊猫指数的差异?

  2. 2

    将两个大熊猫数据框与第一个索引相连吗?

  3. 3

    如何执行这样的大熊猫聚合:删除nan并连接到第一个?

  4. 4

    列表仅返回第一个值

  5. 5

    getElementById仅返回第一个元素的值

  6. 6

    数组函数仅返回第一个值

  7. 7

    合并熊猫数据框时如何仅使用第一个匹配项?

  8. 8

    基于与使用大熊猫另一个小区的比较在每个小区变化值

  9. 9

    使用注入仅返回第一个值并想要总计

  10. 10

    使用STRING_SPLIT时,IN仅匹配第一个值

  11. 11

    从带有熊猫的列中提取值时,无法仅检索遇到的第一个值

  12. 12

    索引熊猫数据框以返回每天的第一个数据点

  13. 13

    preg_match_all仅返回索引为0的第一个数组,而不返回索引为1的第一个数组

  14. 14

    如何获得大熊猫系列中下一个非NaN编号的索引?

  15. 15

    将重复的索引合并为一个大熊猫

  16. 16

    如何索引过去一个月的大熊猫?

  17. 17

    大熊猫每天将小时(仅小时)放入一个数据框中

  18. 18

    Foreach循环仅返回多维数组PHP上的第一个索引

  19. 19

    Laravel WhereIn数组仅返回第一个索引结果

  20. 20

    获取带有偏移索引的熊猫数据框中的列的第一个值

  21. 21

    如何仅替换数据帧熊猫中最大值的第一个实例?

  22. 22

    Python函数仅返回第一个值,而不返回数据框

  23. 23

    按熊猫数据框唯一的第一个值分组 - 返回 numpy 数组

  24. 24

    比较两个对象,仅返回第一个对象的匹配值

  25. 25

    如何编写一个遍历大熊猫数据框组并应用分层条件的函数?

  26. 26

    生成列表,但仅显示第一个索引

  27. 27

    Bash数组仅执行第一个索引

  28. 28

    Wordpress ACF选择:动态使用类别作为选择时,仅返回第一个对象

  29. 29

    大熊猫:从现有的列值创建一个新的数据框

热门标签

归档