从 Pandas Python 中的命名元组列表中提取第 n 个元素?

帕诺德

我试图从存储在 df 中的命名元组列表中提取第 n 个元素,如下所示:

df['text'] = [Tag(word='Come', pos='adj', lemma='Come'), Tag(word='on', pos='nounpl', lemma='on'), Tag(word='Feyenoord', pos='adj', lemma='Feyenoord')]

我试图只从每个元组中提取包含 pos 信息的元素。这是我想要达到的结果:

df['text'] = ['adj', 'nounpl', 'adj']

这是我到目前为止尝试过的:

d =[]     
count = 0
while count < df['text'].size:
    d.append([item[1] for item in df['text'][count]])
    count += 1
dfpos = pd.DataFrame({'text':d})
df['text']= pd.DataFrame({'text':d})

df['text']=df['text'].apply(lambda x: ', '.join(x))

这是错误: IndexError: tuple index out of range

我错过了什么?

解决方案:似乎最简单的解决方案是将元组变成列表。我不确定这是否是最好的解决方案,但它有效。

d =[]
count = 0
while count < df['text'].size:
    temp=([list(item[1:-1]) for item in df['text'][count]])
    d.append(sum(temp, []))
    count += 1

df['text']= pd.DataFrame({'text':d})

df['text2']=df['text'].apply(lambda x: ', '.join(x))
巴拉特

如果 Tag 是您的命名元组,请尝试使用 apply 进行索引

数据准备:

from collections import namedtuple
Tag = namedtuple('Tag', 'word pos lemma')
li = [Tag(word='Come', pos='adj', lemma='Come'), Tag(word='on', pos='nounpl', lemma='on'), Tag(word='Feyenoord', pos='adj', lemma='Feyenoord')]
df = pd.DataFrame({'text':li})

对于基于属性的选择.在应用中使用,因为它是一个命名元组,即

df['new'] = df['text'].apply(lambda x : x.pos)

如果您需要基于索引的选择,请使用

df['new'] = df['text'].apply(lambda x : x[1] if len(x)>1 else np.nan)

输出 df['new']

0 adj 
1 nounpl 
2 adj
名称:文本,dtype:对象

另一种解决方案是str[1]用于选择值namedtuple

df['text1'] = df['text'].str[1]
print (df)
                          text   text1
0            (Come, adj, Come)     adj
1             (on, nounpl, on)  nounpl
2  (Feyenoord, adj, Feyenoord)     adj

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在第n个元素之后在Python列表中插入元素

来自分类Dev

从列表的列表中提取第 n 个元素

来自分类Dev

如何从pandas / python中的长列表中提取混合元素

来自分类Dev

如何从ReportLab表的python中的元组列表中提取元素?

来自分类Dev

OCaml:提取元组的第n个元素?

来自分类Dev

从列表的子列表中提取第n个元素,并将它们组合到一个新列表中?

来自分类Dev

从第ith个元素到第j个元素提取元素范围,直到列表中的第n个元素

来自分类Dev

Python:对列表中包含的列表的每个第n个元素运行一个函数

来自分类Dev

Python:对列表中包含的列表的每个第n个元素运行一个函数

来自分类Dev

Python:如何从列表中获取第 n 个元素,其中 n 来自列表

来自分类Dev

在列表python中的元素左侧找到n个元素

来自分类Dev

如何使用python列表理解更改列表列表中的第n个元素?

来自分类Dev

pandas-使用字典映射dataframe元素-如何访问值列表的第n个元素

来自分类Dev

为什么python返回第n + 1个列表元素而不是第n个?

来自分类Dev

在strsplit之后从嵌套列表中提取第n个元素-R

来自分类Dev

Python删除数组中的每个第n个元素

来自分类Dev

列表的第n个元素

来自分类Dev

在Python列表中提取N维数组的元素

来自分类Dev

从python中的字典列表中提取元素

来自分类Dev

获取Python中列表的最小N个元素的索引

来自分类Dev

如何在Haskell元组中访问第n个元素

来自分类Dev

如何从元组中删除第n个元素?

来自分类Dev

如何在Haskell元组中访问第n个元素

来自分类Dev

使用n个元素的列表从数据框中提取行

来自分类Dev

使用n个元素的列表从数据框中提取行

来自分类Dev

根据第n个元素删除列表中的列表

来自分类Dev

如何使列表中的第n个元素成为自己的列表?

来自分类Dev

如何分割每N个元素的Python列表

来自分类Dev

在元组列表中的元组中提取字典的特定元素

Related 相关文章

  1. 1

    在第n个元素之后在Python列表中插入元素

  2. 2

    从列表的列表中提取第 n 个元素

  3. 3

    如何从pandas / python中的长列表中提取混合元素

  4. 4

    如何从ReportLab表的python中的元组列表中提取元素?

  5. 5

    OCaml:提取元组的第n个元素?

  6. 6

    从列表的子列表中提取第n个元素,并将它们组合到一个新列表中?

  7. 7

    从第ith个元素到第j个元素提取元素范围,直到列表中的第n个元素

  8. 8

    Python:对列表中包含的列表的每个第n个元素运行一个函数

  9. 9

    Python:对列表中包含的列表的每个第n个元素运行一个函数

  10. 10

    Python:如何从列表中获取第 n 个元素,其中 n 来自列表

  11. 11

    在列表python中的元素左侧找到n个元素

  12. 12

    如何使用python列表理解更改列表列表中的第n个元素?

  13. 13

    pandas-使用字典映射dataframe元素-如何访问值列表的第n个元素

  14. 14

    为什么python返回第n + 1个列表元素而不是第n个?

  15. 15

    在strsplit之后从嵌套列表中提取第n个元素-R

  16. 16

    Python删除数组中的每个第n个元素

  17. 17

    列表的第n个元素

  18. 18

    在Python列表中提取N维数组的元素

  19. 19

    从python中的字典列表中提取元素

  20. 20

    获取Python中列表的最小N个元素的索引

  21. 21

    如何在Haskell元组中访问第n个元素

  22. 22

    如何从元组中删除第n个元素?

  23. 23

    如何在Haskell元组中访问第n个元素

  24. 24

    使用n个元素的列表从数据框中提取行

  25. 25

    使用n个元素的列表从数据框中提取行

  26. 26

    根据第n个元素删除列表中的列表

  27. 27

    如何使列表中的第n个元素成为自己的列表?

  28. 28

    如何分割每N个元素的Python列表

  29. 29

    在元组列表中的元组中提取字典的特定元素

热门标签

归档