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

标记列,然后组合它们

标记列,然后组合它们

蓝山帝景 2023-05-23 16:09:41
我想将两列合并为一列作为单词/标记列表。目前我的数据集看起来像:A_Col   B_Col             C_Colhome    my house          I have a new housepaper   research paper    my mobile phone is brokenNaN     NaN               zoe zaczek whoNaN     NaN               two per centNaN 是空字段的值。我想做的是以下内容:保留列A_Col但合并B_Col并C_Col为了有这样的东西:A_Col   BC_Col            home    ['my', 'house','I', 'have', 'a', 'new', 'house']paper   ['research', 'paper', 'my', 'mobile', 'phone', 'is,','broken']NaN     ['zoe', 'zaczek', 'who']NaN     ['two', 'per', 'cent']看问题,需要的步骤应该是:标记化B_Col;标记化C_Col;合并结果;删除 NaN 值,无论它们是否。对于前两点,我使用以下内容:df['B_Col'] = df.apply(lambda row: nltk.word_tokenize(row['B_Col']))df['C_Col'] = df.apply(lambda row: nltk.word_tokenize(row['C_Col']))合并结果:df['BC_Col'] = df['B_Col'] + df['C_Col']然后我应该删除NaN值。但是,我的代码中有些东西不起作用,因为我没有获得B_Col和的标记化C_Col。我希望你能帮助我理解我的错误。谢谢。
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

你可以这样做:


df['BC_Col'] = df['B_Col'].fillna('').str.split() + df['C_Col'].fillna('').str.split()

df

    A_Col   B_Col   C_Col   BC_Col

0   home    my house    I have a new house  [my, house, I, have, a, new, house]

1   paper   research paper  my mobile phone is broken   [research, paper, my, mobile, phone, is, broken]

2   NaN NaN zoe zaczek who  [zoe, zaczek, who]

3   NaN NaN two per cent    [two, per, cent]


查看完整回答
反对 回复 2023-05-23
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

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