如何在Python中获取每个有序行的值的前3个元素

Jenny Jing Yu

我有一个数据帧,其数据类型为字符串,如下所示:

ID Var1 Var2 Var3 是4 Var5
1个 一种 C d E
2个 C d
3 C d E
4 一种 C E

我想为每一行选择前3个元素,如下所示:

ID Var1 Var2 Var3 是4 Var5 Var6
1个 一种 C d E A,B,C
2个 C d B,C,D
3 C d E C,D,E
4 一种 C E 高手
海豆

试试这个:

df['Var6'] = df.apply(lambda x: [y for y in x.values if y != ''][:3], axis=1)

产生的df:

  Var1 Var2 Var3 Var4 Var5       Var6
1    A    B    C    D    E  [A, B, C]
2         B    C    D       [B, C, D]
3              C    D    E  [C, D, E]
4    A         C         E  [A, C, E]

如果要将结果作为逗号分隔的字符串,请进一步使用:

df['Var6'] = df['Var6'].str.join(', ')

产生的df:

  Var1 Var2 Var3 Var4 Var5     Var6
1    A    B    C    D    E  A, B, C
2         B    C    D       B, C, D
3              C    D    E  C, D, E
4    A         C         E  A, C, E

如果您要一步一步做,请使用:

df['Var6'] = df.apply(lambda x: ','.join([y for y in x.values if y != ''][:3]), axis=1)

编辑

ID当我提供答案时,我在示例数据中将其解释为行索引,尤其是当OP提到DataFrame的数据类型为字符串,并且当她从每一行中选择前三个元素时,ID都不会从标记列的值中进行选择。

但是,我看到其他一些答案被ID视为数据列。为了完整起见,我想添加代码,以防万一ID是一个数据列,而对于每一行的前3个元素仍不取其值的情况。

如果ID是数据列但不被选择:稍微调整代码,如下所示:

df1 = df.set_index('ID')      # temporarily set column ID as index
# same code as my main answer except to replace df by df1
df1['Var6'] = df1.apply(lambda x: ','.join([y for y in x.values if y != ''][:3]), axis=1)
df = df1.reset_index()        # reset the index to move ID back to data column 

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从有序字典列表中获取所需的值

来自分类Dev

如何在sqlite中获取有序查询?

来自分类Dev

如何在Python中执行以下有序子集元素测试?

来自分类Dev

如何比较两个有序词典之间的元素值

来自分类Dev

如何在python中获取前N个值

来自分类Dev

如何在视图中获取10个有序条目?

来自分类Dev

如何在Java 8中以相反的顺序从列表中获取有序流

来自分类Dev

如何在列表列表中列出元素的有序频率列表

来自分类Dev

如何使第二个python x轴具有非有序值?

来自分类Dev

如何从有序词典中获取所有键?

来自分类Dev

当其中一个键是整数时,如何访问有序字典中的值?

来自分类Dev

获取有序集合中的上一个和下一个元素

来自分类Dev

如何在Rust中制作一个反向有序的for循环?

来自分类Dev

N个有序元素的组合

来自分类Dev

如何在pymongo中获得有序词典?

来自分类Dev

您如何在Coq中定义有序对?

来自分类Dev

如何在python中获取两个嵌套列表的每个元素的交集?

来自分类Dev

如何在 MySQL 中获取具有特定行/值的每个人的 ID

来自分类Dev

如何判断Python中的结构是否有序?

来自分类Dev

Python3如何在4个单词后向数组中的每个元素添加<br>标签?

来自分类Dev

获取PostgreSQL中有序集的最后一个元素

来自分类Dev

将具有 3 个元素的元组列表转换为有序字典

来自分类Dev

获取数组元素的所有有序、连续组合

来自分类Dev

如何在Java中仅打印出具有5个元素的数组的前3个元素?

来自分类Dev

在单词的有序序列中:“ Word1,Word2,Word3”:如何在“ Word1”和“ Word3”上只有1个超链接?因此,在单个链接中跳过一个单词?

来自分类Dev

Python中的有序字典

来自分类Dev

Python中的有序遍历

来自分类Dev

Python中的有序字典

来自分类Dev

Python中的有序字典(排序)

Related 相关文章

  1. 1

    如何从有序字典列表中获取所需的值

  2. 2

    如何在sqlite中获取有序查询?

  3. 3

    如何在Python中执行以下有序子集元素测试?

  4. 4

    如何比较两个有序词典之间的元素值

  5. 5

    如何在python中获取前N个值

  6. 6

    如何在视图中获取10个有序条目?

  7. 7

    如何在Java 8中以相反的顺序从列表中获取有序流

  8. 8

    如何在列表列表中列出元素的有序频率列表

  9. 9

    如何使第二个python x轴具有非有序值?

  10. 10

    如何从有序词典中获取所有键?

  11. 11

    当其中一个键是整数时,如何访问有序字典中的值?

  12. 12

    获取有序集合中的上一个和下一个元素

  13. 13

    如何在Rust中制作一个反向有序的for循环?

  14. 14

    N个有序元素的组合

  15. 15

    如何在pymongo中获得有序词典?

  16. 16

    您如何在Coq中定义有序对?

  17. 17

    如何在python中获取两个嵌套列表的每个元素的交集?

  18. 18

    如何在 MySQL 中获取具有特定行/值的每个人的 ID

  19. 19

    如何判断Python中的结构是否有序?

  20. 20

    Python3如何在4个单词后向数组中的每个元素添加<br>标签?

  21. 21

    获取PostgreSQL中有序集的最后一个元素

  22. 22

    将具有 3 个元素的元组列表转换为有序字典

  23. 23

    获取数组元素的所有有序、连续组合

  24. 24

    如何在Java中仅打印出具有5个元素的数组的前3个元素?

  25. 25

    在单词的有序序列中:“ Word1,Word2,Word3”:如何在“ Word1”和“ Word3”上只有1个超链接?因此,在单个链接中跳过一个单词?

  26. 26

    Python中的有序字典

  27. 27

    Python中的有序遍历

  28. 28

    Python中的有序字典

  29. 29

    Python中的有序字典(排序)

热门标签

归档