根据逗号分割并在Python中创建新的数据框

希沃特

假设我有以下数据框。

df

Nodes       Weight
A,B          10
A,C,F        8
B,F,D        6
B,E          4

我想根据逗号分割并保持其重量。例如,Nodes (A,C,F)A与C具有连接,而C与F具有连接。因此,我想看到A >>CC>>F不用看了A>>F并且其重量应为8,如下所示。

正在寻找的最终数据帧如下所示。

Node_1    Node_2     Weight
A            B        10
A            C        8
C            F        8
B            F        6
F            D        6
B            E        4

创建此数据框的目的是从中创建网络图。

有类似的解决方案,但我无法获得想要的结果。

我尝试了以下方法:

df = (df['Nodes'].str.split(',') .groupby(df['Weight'])

有人可以帮忙吗?

斯科特·波士顿

这是执行此操作的一种方法:

# From https://docs.python.org/3/library/itertools.html#itertools-recipes
from itertools import tee
def pairwise(iterable):
    "s -> (s0,s1), (s1,s2), (s2, s3), ..."
    a, b = tee(iterable)
    next(b, None)
    return zip(a, b)

df['Node_pairs'] = df['Nodes'].str.split(',').apply(lambda x: list(pairwise(x)))
df = df.explode('Node_pairs')
df['Node1'] = df['Node_pairs'].str[0]
df['Node2'] = df['Node_pairs'].str[1]
df

输出:

   Nodes  Weight Node_pairs Node1 Node2
0    A,B      10     (A, B)     A     B
1  A,C,F       8     (A, C)     A     C
1  A,C,F       8     (C, F)     C     F
2  B,F,D       6     (B, F)     B     F
2  B,F,D       6     (F, D)     F     D
3    B,E       4     (B, E)     B     E

细节:

  • 使用itertools文档中的成对配方创建“ Node_pairs”
  • 分解“ Node_pairs”列表中的数据框
  • 使用.str获取快捷方式分配“ Node1”和“ Node2”。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据值过滤并在spark数据框中创建列表

来自分类Dev

日期时间列操作并在Python中的数据框中创建新列

来自分类Dev

复制行并在R中创建新的数据框

来自分类Dev

如何遍历数据框,创建新列并在python中为其添加值

来自分类Dev

如何遍历数据框,创建新列并在python中为其添加值

来自分类Dev

如何汇总日内时间戳并在pandas数据框Python中创建新列

来自分类Dev

使用python regex分割字符串列以在Python中创建数据框的新列

来自分类Dev

使用python regex分割字符串列以在Python中创建数据框的新列

来自分类Dev

根据匹配的行数据在熊猫中创建新的数据框

来自分类Dev

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

来自分类Dev

根据另一个数据框中的行创建多个新数据框,并在r中使用for循环

来自分类Dev

在python数据框中创建新的矢量

来自分类Dev

Python熊猫根据上述某些行上的条件在数据框中创建新行

来自分类Dev

Python:根据给定的索引使用现有 df 中的行创建新数据框

来自分类Dev

Python根据不同的行创建新的数据框列

来自分类Dev

根据条件在数据框中创建新列

来自分类Dev

如何根据条件在数据框中创建新列

来自分类Dev

熊猫:根据从旧数据框中的字符串中提取的数据创建新的数据框

来自分类Dev

根据工作日从现有数据框中拆分并创建新数据框

来自分类Dev

在逗号上分割字符串,但忽略单引号中的逗号,并在python中分割字符串后创建字典

来自分类Dev

合并数据框中的两列并在R中的现有数据框中创建新列

来自分类Dev

分组汇总两列,并在pandas中创建新的数据框

来自分类Dev

删除列的数字(零)并在数据框中创建一个新列

来自分类Dev

如何遍历 R 数据框中的列并在每次迭代中使用列名创建新数据框?

来自分类Dev

根据条件根据列的总和值创建新的数据框

来自分类Dev

根据先前列中的最新值在数据框中创建新列

来自分类Dev

如何根据单独数据框中的两列结果在数据框中创建新列?

来自分类Dev

无法根据数据框中提供的数据创建新列

来自分类Dev

Python:处理不同大小的数据框以根据日期时间条件创建新列

Related 相关文章

  1. 1

    根据值过滤并在spark数据框中创建列表

  2. 2

    日期时间列操作并在Python中的数据框中创建新列

  3. 3

    复制行并在R中创建新的数据框

  4. 4

    如何遍历数据框,创建新列并在python中为其添加值

  5. 5

    如何遍历数据框,创建新列并在python中为其添加值

  6. 6

    如何汇总日内时间戳并在pandas数据框Python中创建新列

  7. 7

    使用python regex分割字符串列以在Python中创建数据框的新列

  8. 8

    使用python regex分割字符串列以在Python中创建数据框的新列

  9. 9

    根据匹配的行数据在熊猫中创建新的数据框

  10. 10

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

  11. 11

    根据另一个数据框中的行创建多个新数据框,并在r中使用for循环

  12. 12

    在python数据框中创建新的矢量

  13. 13

    Python熊猫根据上述某些行上的条件在数据框中创建新行

  14. 14

    Python:根据给定的索引使用现有 df 中的行创建新数据框

  15. 15

    Python根据不同的行创建新的数据框列

  16. 16

    根据条件在数据框中创建新列

  17. 17

    如何根据条件在数据框中创建新列

  18. 18

    熊猫:根据从旧数据框中的字符串中提取的数据创建新的数据框

  19. 19

    根据工作日从现有数据框中拆分并创建新数据框

  20. 20

    在逗号上分割字符串,但忽略单引号中的逗号,并在python中分割字符串后创建字典

  21. 21

    合并数据框中的两列并在R中的现有数据框中创建新列

  22. 22

    分组汇总两列,并在pandas中创建新的数据框

  23. 23

    删除列的数字(零)并在数据框中创建一个新列

  24. 24

    如何遍历 R 数据框中的列并在每次迭代中使用列名创建新数据框?

  25. 25

    根据条件根据列的总和值创建新的数据框

  26. 26

    根据先前列中的最新值在数据框中创建新列

  27. 27

    如何根据单独数据框中的两列结果在数据框中创建新列?

  28. 28

    无法根据数据框中提供的数据创建新列

  29. 29

    Python:处理不同大小的数据框以根据日期时间条件创建新列

热门标签

归档