网站建设app开发 微信小程序 网站开发 自动脚本,青岛东橙网站建设,广州最好的网站建设公司,网站备案收费么在应用机器学习的过程中#xff0c;很大一部分工作都是在做数据的处理#xff0c;一个非常常见的场景就是将一个list序列的特征数据拆成多个单独的特征数据。
比如数据集如下所示#xff1a;
data [[John, 25, Male,[99,100,98]],[Emily, 22, Female,[97,99,98]],[Michae…在应用机器学习的过程中很大一部分工作都是在做数据的处理一个非常常见的场景就是将一个list序列的特征数据拆成多个单独的特征数据。
比如数据集如下所示
data [[John, 25, Male,[99,100,98]],[Emily, 22, Female,[97,99,98]],[Michael, 30, Male,[97,99,100]]]
df_data pd.DataFrame(data,columns[Name, Age, Gender,Score])
df_data很多场景是需要将类似于Score的list序列特征拆成多个特征值如这里的语、数、外的分数。
下面通过几个实例来将dataframe列中的list序列转换为多列。
1、一维序列拆成多列
可以通过在列上应用Series来进行拆分。
df_scoredf_data[Score].apply(pd.Series).rename(columns{0:English,1:Math,2:Chinese})
df_score可以看到将Score的数组拆分成了English、Math、Chinese三个特征字段了
df_datadf_data.join(df_score)
df_data2、二维序列拆成多列
用同样的思路也可以将二维序列的特征列拆成多列 如特征列是二维序列序列里还有多个序列
data [[John, 25, Male,[[99,100,98],[89,70]]],[Emily, 22, Female,[[97,99,98],[99,96]]],[Michael, 30, Male,[[97,99,100],[87,99]]]]
df_data pd.DataFrame(data,columns[Name, Age, Gender,Score])
df_datadf_scoredf_data[Score].apply(pd.Series)
df_score_1df_score[0].apply(pd.Series).rename(columns{0:English,1:Math,2:Chinese})
df_score_2df_score[1].apply(pd.Series).rename(columns{0:Biology,1:Geography})
df_scoredf_score_1.join(df_score_2)
df_datadf_data.join(df_score_1).join(df_score_2)
df_data另外一种情况就是序列里面只有一个序列的二维序列数据如下所示
data [[John, 25, Male,[[99,100,98,89,70]]],[Emily, 22, Female,[[97,99,98,99,96]]],[Michael, 30, Male,[[97,99,100,87,99]]]]
df_data pd.DataFrame(data,columns[Name, Age, Gender,Score])
df_data这样也可以通过多次应用Series来进行拆分也可以先explode()再应用Series来进行拆分。
df_scoredf_data[Score].apply(pd.Series)[0].apply(pd.Series).rename(columns{0:English,1:Math,2:Chinese,3:Biology,4:Geography})
df_scoredf_scoredf_data[Score].explode().apply(pd.Series).rename(columns{0:English,1:Math,2:Chinese,3:Biology,4:Geography})
df_score两者效果是一样的。 博客地址http://xiejava.ishareread.com/