问题描述
我想将两列合并为一个单词/标记列表。 目前,我的数据集如下:
A_Col B_Col C_Col
home my house I have a new house
paper research paper my mobile phone is broken
NaN NaN zoe zaczek who
NaN NaN two per cent
NaN是空白字段的值。
我要执行的操作如下:保留列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
的令牌化,所以某些代码无法正常工作。
希望您能帮助我理解我的错误。谢谢。
解决方法
您可以这样做:
if (boolean1 && boolean2)
df['BC_Col'] = df['B_Col'].fillna('').str.split() + df['C_Col'].fillna('').str.split()
df