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

如何访问熊猫单元格中的项目列表

如何访问熊猫单元格中的项目列表

红糖糍粑 2021-04-08 13:11:56
我在熊猫中有一个数据框,其中包含几列,我需要访问包含一个项目列表的一个单元格,这怎么可能?(例如,在下面的示例中,如何访问Match元素)ID   Match                               1   (word1,,,)                           2   (word2,,,),(word1)3   (word2,,,),(word1),(word3,,,)
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

我建议使用str索引器,如果由于值不存在而不匹配,则返回NaN:


#if need slect first tuple

df['new'] = df['Match'].str[0]


#if need select second tuple and first element of tuple

df['new'] = df['Match'].str[1].str[0]

样品:


a = [[('word1','','','')], 

      [('word2','','',''),('word1', )], 

      [('word2','','',''),('word1', ),('word3','','','')]]


df = pd.DataFrame({'ID':[1,2,3], 'Match':a})


df['new1'] = df['Match'].str[0]

df['new2'] = df['Match'].str[1].str[0]

print (df)


   ID                                     Match           new1   new2

0   1                           [(word1, , , )]  (word1, , , )    NaN

1   2                 [(word2, , , ), (word1,)]  (word2, , , )  word1

2   3  [(word2, , , ), (word1,), (word3, , , )]  (word2, , , )  word1

编辑:


如果值是字符串,请使用ast.literal_eval:


import ast


df['Match'] = df['Match'].astype(str)


df['Match'] = df['Match'].apply(ast.literal_eval)

df['new2'] = df['Match'].str[0]

print (df)


   ID                                     Match           new2

0   1                           [(word1, , , )]  (word1, , , )

1   2                 [(word2, , , ), (word1,)]  (word2, , , )

2   3  [(word2, , , ), (word1,), (word3, , , )]  (word2, , , )


查看完整回答
反对 回复 2021-04-27
  • 1 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号