为了账号安全,请及时绑定邮箱和手机立即绑定

itertools.chain.from_iterable 适用于嵌套数字列表但不适用于字符串列表?

itertools.chain.from_iterable 适用于嵌套数字列表但不适用于字符串列表?

阿波罗的战车 2022-06-28 15:29:57
我的数据框中有一列由列表组成,我想将每一行的所有列表组合成一个单元格中的一个列表。这是列的样子df.terms.dropna()0     [Algorithms, Brain, Brain Mapping, Computer Si...4     [Adult, Algorithms, Cerebrovascular Circulatio...5     [Algorithms, Brain, Brain Mapping, Hemodynamic...7     [Adult, Algorithms, Brain, Cerebrovascular Cir...10    [Animals, Base Composition, Birds, Genetic Var...Name: mesh_terms, dtype: object我设法将它们结合在一起并得到0    [[Algorithms, Brain, Brain Mapping, Computer S...],[Adult, Algorithms, Cerebrovascular Circulatio...],[Algorithms, Brain, Brain Mapping, Hemodynamic...],[list_index_7],[list_index_10]]Name: mesh_terms, dtype: object但我想要一个包含所有字符串的长列表,例如[Algorithms, Brain, Brain Mapping, Computer Si..., ... , Animals, Base Composition, Birds, Genetic Var...]我试过使用 itertools,但它仍然给了我一个嵌套列表,但它适用于这个例子list2d = [[1,2,3],[4,5,6], [7], [8,9]]list(itertools.chain.from_iterable(list2d))[1, 2, 3, 4, 5, 6, 7, 8, 9]也试过flattened = [val for sublist in list_of_lists for val in sublist]没有让它工作。
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

将值转换为列表,然后转换为DataFrame或Series构造函数:


df_mesh = pd.DataFrame({'terms': [['Algorithms','Brain'],['Adult','Algorithms']]})

print (df_mesh)

                 terms

0  [Algorithms, Brain]

1  [Adult, Algorithms]


df = pd.DataFrame({'new': [df_mesh['terms'].tolist()]})

print (df)

                                          new

0  [[Algorithms, Brain], [Adult, Algorithms]]

s = pd.Series([df_mesh['terms'].tolist()])

print (s)

0    [[Algorithms, Brain], [Adult, Algorithms]]

dtype: object

编辑:


s1 = pd.Series([[val for sublist in df_mesh['terms'] for val in sublist]])

print (s1)

0    [Algorithms, Brain, Adult, Algorithms]

dtype: object

或者:


s1 = pd.Series([list(itertools.chain.from_iterable(df_mesh['terms']))])


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信