首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将同步集列表更改为列表元素?

如何将同步集列表更改为列表元素?
EN

Stack Overflow用户
提问于 2022-02-22 16:38:06
回答 1查看 33关注 0票数 0

我已经为我的项目尝试了以下代码片段:

代码语言:javascript
复制
import pandas as pd
import nltk
from nltk.corpus import wordnet as wn

nltk.download('wordnet')
df=[]
hypo = wn.synset('science.n.01').hyponyms()
hyper = wn.synset('science.n.01').hypernyms()
mero = wn.synset('science.n.01').part_meronyms()
holo = wn.synset('science.n.01').part_holonyms()
ent = wn.synset('science.n.01').entailments()
df = df+hypo+hyper+mero+holo+ent
df_agri_clean = pd.DataFrame(df)
df_agri_clean.columns=["Items"]
print(df_agri_clean)

pd.set_option('display.expand_frame_repr', False)

它给了我一个dataframe的输出:

代码语言:javascript
复制
                             Items
0            Synset('agrobiology.n.01')
1               Synset('agrology.n.01')
2               Synset('agronomy.n.01')
3         Synset('architectonics.n.01')
4      Synset('cognitive_science.n.01')
5          Synset('cryptanalysis.n.01')
6    Synset('information_science.n.01')
7            Synset('linguistics.n.01')
8            Synset('mathematics.n.01')
9             Synset('metallurgy.n.01')
10             Synset('metrology.n.01')
11       Synset('natural_history.n.01')
12       Synset('natural_science.n.01')
13             Synset('nutrition.n.03')
14            Synset('psychology.n.01')
15        Synset('social_science.n.01')
16            Synset('strategics.n.01')
17           Synset('systematics.n.01')
18           Synset('thanatology.n.01')
19            Synset('discipline.n.01')
20     Synset('scientific_theory.n.01')
21  Synset('scientific_knowledge.n.01')

只需打印df即可将其转换为列表。

代码语言:javascript
复制
[Synset('agrobiology.n.01'), Synset('agrology.n.01'), Synset('agronomy.n.01'), Synset('architectonics.n.01'), Synset('cognitive_science.n.01'), Synset('cryptanalysis.n.01'), Synset('information_science.n.01'), Synset('linguistics.n.01'), Synset('mathematics.n.01'), Synset('metallurgy.n.01'), Synset('metrology.n.01'), Synset('natural_history.n.01'), Synset('natural_science.n.01'), Synset('nutrition.n.03'), Synset('psychology.n.01'), Synset('social_science.n.01'), Synset('strategics.n.01'), Synset('systematics.n.01'), Synset('thanatology.n.01'), Synset('discipline.n.01'), Synset('scientific_theory.n.01'), Synset('scientific_knowledge.n.01')]

我希望更改“项目”下的每一个单词,如:Synset('agrobiology.n.01') => agrobiology.n.01Synset('agrobiology.n.01') => 'agrobiology'任何相关的答案将不胜感激!谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-22 17:12:07

要访问这些项的名称,只需执行function.name()即可。您可以使用行理解更新这些项目如下:

代码语言:javascript
复制
df_agri_clean['Items'] = [df_agri_clean['Items'][i].name() for i in range(len(df_agri_clean))] 
df_agri_clean

输出将如您所预期的那样

代码语言:javascript
复制
    Items
0   agrobiology.n.01
1   agrology.n.01
2   agronomy.n.01
3   architectonics.n.01
4   cognitive_science.n.01
5   cryptanalysis.n.01
6   information_science.n.01
7   linguistics.n.01
8   mathematics.n.01
9   metallurgy.n.01
10  metrology.n.01
11  natural_history.n.01
12  natural_science.n.01
13  nutrition.n.03
14  psychology.n.01
15  social_science.n.01
16  strategics.n.01
17  systematics.n.01
18  thanatology.n.01
19  discipline.n.01
20  scientific_theory.n.01
21  scientific_knowledge.n.01

要从字符串中进一步替换".n.01“,可以执行以下操作:

代码语言:javascript
复制
df_agri_clean['Items'] = [df_agri_clean['Items'][i].name().replace('.n.01', '') for i in range(len(df_agri_clean))] 
df_agri_clean

输出(就像第二个期望的输出一样)

代码语言:javascript
复制
Items
0   agrobiology
1   agrology
2   agronomy
3   architectonics
4   cognitive_science
5   cryptanalysis
6   information_science
7   linguistics
8   mathematics
9   metallurgy
10  metrology
11  natural_history
12  natural_science
13  nutrition.n.03
14  psychology
15  social_science
16  strategics
17  systematics
18  thanatology
19  discipline
20  scientific_theory
21  scientific_knowledge
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71225030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档