如何使用现有数据框的具体信息生成新数据框

编码

我想从现有数据帧创建一个新数据帧,生成两个新列(“topic”和“num”),其中包含来自旧数据帧的“total”列的信息。

这是我想从中获取信息的旧数据框:

d = {'username': ['low_bu', 'kik', 'serg'],
     'total': ['topic:tele,num:3,randomnums,topic:ordena,num:2','topic:pc,num:5,morenums,topic:ordena,num:3,things,topic:tele,num:4','topic:pc,num:2,sas,topic:ordena,num:3,rr,topic:other,num:4']
     }
d = pd.DataFrame(d)
d

   username         total
0   low_bu    topic:tele,num:3,randomnums,topic:ordena,num:2
1   kik       topic:pc,num:5,morenums,topic:ordena,num:3,things,topic:tele,num:4
2   serg      topic:pc,num:2,sas,topic:ordena,num:3,rr,topic:other,num:10

这是新数据框 (d_new) 的预期结果:

username  topic   num
 low_bu    tele     3
 low_bu    ordena   2
 kik       pc       5
 kik       ordena   3
 kik       tele     4
 serg      pc       2
 serg      ordena   3
 serg      other    10

我已经尝试过这种方法,但出现错误,无论如何我认为代码并不是我正在寻找的代码:

d_new = {}
d_new = pd.DataFrame(d_new)    
d_new = d['username'].copy 
d_new['topic'] = d.total.str.split('topic:').str[1].str.split(',').str[0]
d_new['num'] = d.total.str.split('num:').str[1].str.split(',').str[0]
凯奥·洛佩斯

您可以尝试使用正则表达式以您想要的方式提取它,如下例所示:

import pandas as pd

d = {'username': ['low_bu', 'kik', 'serg'],
     'total': ['topic:tele,num:3,randomnums,topic:ordena,num:2','topic:pc,num:5,morenums,topic:ordena,num:3,things,topic:tele,num:4','topic:pc,num:2,sas,topic:ordena,num:3,rr,topic:other,num:4']
     }
d = pd.DataFrame(d)

# extract topics from total column
topics = d.set_index('username').total.str.extractall(r'topic:([^,]*)')
# extract nums from total column
nums = d.set_index('username').total.str.extractall(r'num:([^,]*)')

# generate a new data in the multi array form
# [[username, topic, num], [username, topic, num]] ...
data = []
for username in d.username.unique():
    for topic, num in zip(topics[0][username], nums[0][username]):
        data.append([username, topic, num])

d_new = pd.DataFrame(data, columns='username,topic,num'.split(','))
print(d_new)
  username   topic num
0   low_bu    tele   3
1   low_bu  ordena   2
2      kik      pc   5
3      kik  ordena   3
4      kik    tele   4
5     serg      pc   2
6     serg  ordena   3
7     serg   other   4

在此处了解有关 Regex 的更多信息:https : //regexone.com

它对于提取文本非常有用。

这个网站对于测试你的正则表达式也非常有用:https : //regex101.com

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从现有数据框创建新数据框

来自分类Dev

使用Purrr从现有数据框中生成新数据框

来自分类Dev

使用现有数据框中的值的新数据框

来自分类Dev

使用另一个数据框的行号从现有数据框创建新的pandas数据框

来自分类Dev

使用 R,如何使用现有数据框中列的中位数创建新数据集?

来自分类Dev

如何从现有数据框中一个数据帧,并提出具体的领域结构类型?

来自分类Dev

如何使用自定义函数在现有数据框中创建新的二进制变量?

来自分类Dev

来自现有DF的元信息的新熊猫数据框

来自分类Dev

如何在现有数据框中添加零元素的新列?

来自分类Dev

使用两个for循环和if语句在现有数据框中填充新列

来自分类Dev

将新数据框插入现有数据框到Pandas中的特定行位置

来自分类Dev

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

来自分类Dev

从现有数据框列名称创建新的数据框列

来自分类Dev

python可以从现有数据框创建一个新的数据框吗?

来自分类Dev

如何更新熊猫中的现有数据框?

来自分类Dev

R:如何根据特定规则从数据框中选择数据并将数据作为新列添加到现有数据框中

来自分类Dev

如何根据其他2个现有数据框创建数据框?

来自分类Dev

如何生成新的数据框?

来自分类Dev

更新现有数据框中的python excel数据

来自分类Dev

在Pyspark中,如何将值列表作为新列添加到现有数据框?

来自分类Dev

创建由符合条件的现有数据框的特定行组成的新熊猫数据框的最佳方法是什么?

来自分类Dev

通过将逻辑应用于现有数据框来创建新的熊猫数据框

来自分类Dev

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

来自分类Dev

创建由符合条件的现有数据框的特定行组成的新熊猫数据框的最佳方法是什么?

来自分类Dev

使用Scala中数据框中的现有数据在数据框中创建arraytype列

来自分类Dev

Pandastable将新列添加到现有数据框

来自分类Dev

向现有数据框添加新行的更快方法

来自分类Dev

根据现有数据框中的其他列创建一个新列

来自分类Dev

如何通过现有的数据框创建一个新的数据框?

Related 相关文章

  1. 1

    如何从现有数据框创建新数据框

  2. 2

    使用Purrr从现有数据框中生成新数据框

  3. 3

    使用现有数据框中的值的新数据框

  4. 4

    使用另一个数据框的行号从现有数据框创建新的pandas数据框

  5. 5

    使用 R,如何使用现有数据框中列的中位数创建新数据集?

  6. 6

    如何从现有数据框中一个数据帧,并提出具体的领域结构类型?

  7. 7

    如何使用自定义函数在现有数据框中创建新的二进制变量?

  8. 8

    来自现有DF的元信息的新熊猫数据框

  9. 9

    如何在现有数据框中添加零元素的新列?

  10. 10

    使用两个for循环和if语句在现有数据框中填充新列

  11. 11

    将新数据框插入现有数据框到Pandas中的特定行位置

  12. 12

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

  13. 13

    从现有数据框列名称创建新的数据框列

  14. 14

    python可以从现有数据框创建一个新的数据框吗?

  15. 15

    如何更新熊猫中的现有数据框?

  16. 16

    R:如何根据特定规则从数据框中选择数据并将数据作为新列添加到现有数据框中

  17. 17

    如何根据其他2个现有数据框创建数据框?

  18. 18

    如何生成新的数据框?

  19. 19

    更新现有数据框中的python excel数据

  20. 20

    在Pyspark中,如何将值列表作为新列添加到现有数据框?

  21. 21

    创建由符合条件的现有数据框的特定行组成的新熊猫数据框的最佳方法是什么?

  22. 22

    通过将逻辑应用于现有数据框来创建新的熊猫数据框

  23. 23

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

  24. 24

    创建由符合条件的现有数据框的特定行组成的新熊猫数据框的最佳方法是什么?

  25. 25

    使用Scala中数据框中的现有数据在数据框中创建arraytype列

  26. 26

    Pandastable将新列添加到现有数据框

  27. 27

    向现有数据框添加新行的更快方法

  28. 28

    根据现有数据框中的其他列创建一个新列

  29. 29

    如何通过现有的数据框创建一个新的数据框?

热门标签

归档