pandas apply使用方法

需求:

下图的dataframe,我要把里面的所有的句子进行切词,然后把question,dialouge,report 的内容合并成一列方便来构建词向量
pandas apply使用方法
最后变成:
pandas apply使用方法

代码

import pandas as pd
import jieba

data = {
    'QID': ['Q1', 'Q2', 'Q3', 'Q4', 'Q5'],
    'Brand': ['奔驰', '奔驰', '宝马', 'Jeep', '奔驰'],
    'Model': ['奔驰GL级', '奔驰M级', '宝马X1(进口)', '牧马人', '奔驰C级'],
    'Question': ['方向机重,助力泵,方向机都换了', '奔驰ML500排气凸轮轴调节错', '2010款宝马X1,2011年', '3.0V6发动机号在什么位置,', '2012款奔驰c180怎么样,'],
    'Dialogue': ['技师说:[语音]|车主说:新的', '技师说:你这个有没有电脑检测故', '技师说:你好,4缸自然吸气发动', '技师说:右侧排气管上方,缸体上', '技师说:家庭用车的话,还是可以'],
    'Report': ['随时联系', '随时联系', '行驶没有顿挫的感觉,原地换挡有', '举起车辆,在左前轮这边的缸体上', '家庭用车可以入手的,维修保养价']

}
df = pd.DataFrame(data)
def sentence_proc(sentence):
   '''
   接受句子,切词然后用' '拼接起来后面用apply 配合这个函数批量处理数据
   '''
  
    sentence = jieba.cut(sentence)

    # 拼接成一个字符串,按空格分隔
    return ' '.join(sentence)

for col_name in ['Brand', 'Model', 'Question', 'Dialogue','Report']:
    df[col_name] = df[col_name].apply(sentence_proc)

pandas apply使用方法
接下来合并列数据

df[['Question', 'Dialogue', 'Report']].apply(lambda x :' '.join(x))

pandas apply使用方法
可以看到这是按行合并,不是我们想要的结果

df[['Question', 'Dialogue', 'Report']].apply(lambda x :' '.join(x))

pandas apply使用方法
加上坐标轴参数,设置为第二个坐标轴就可以

df['Merged'] = df[['Question', 'Dialogue', 'Report']].apply(lambda x :' '.join(x),axis=1)
df
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210522124256343.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDY3MzA0Mw==,size_16,color_FFFFFF,t_70)
上一篇:TensorFlow-Keras 11.多输入模型


下一篇:JS高级---把局部变量变成全局变量