小编Muh*_*Zia的帖子

基于列的sklearn分层抽样

我有一个包含亚马逊评论数据的相当大的CSV文件,我将其读入大熊猫数据框.我想将数据分成80-20(训练测试),但在这样做时我想确保分割数据按比例代表一列(类别)的值,即所有不同类别的评论都存在于列车中并按比例测试数据.

数据如下所示:

**ReviewerID**       **ReviewText**        **Categories**       **ProductId**

1212                   good product         Mobile               14444425
1233                   will buy again       drugs                324532
5432                   not recomended       dvd                  789654123 
Run Code Online (Sandbox Code Playgroud)

我使用以下代码来执行此操作:

import pandas as pd
Meta = pd.read_csv('C:\\Users\\xyz\\Desktop\\WM Project\\Joined.csv')
import numpy as np
from sklearn.cross_validation import train_test_split

train, test = train_test_split(Meta.categories, test_size = 0.2, stratify=y)
Run Code Online (Sandbox Code Playgroud)

它给出了以下错误

NameError: name 'y' is not defined
Run Code Online (Sandbox Code Playgroud)

因为我对python相对较新,所以我无法弄清楚我做错了什么,或者这个代码是否会根据列类别进行分层.当我从train-test split中删除了stratify选项以及categories列时,它似乎工作正常.

任何帮助将不胜感激.

python pandas scikit-learn sklearn-pandas

14
推荐指数
2
解决办法
3万
查看次数

获取pandas数据框中子节点的所有直接中间和最终父节点

我有父子关系的数据框,如下所示:

**child                Parent              relationship**

   A1x2                 bc11                direct_parent
   bc11                 Aw00                direct_parent
   bc11                 Aw00                ultimate_parent
   Aee1                 Aee0                direct_parent
   Aee1                 Aee0                ultimate_parent
Run Code Online (Sandbox Code Playgroud)

我想在新数据框中获取所有子节点的所有祖先。结果看起来像这样:

node                   ancesstory_tree

A1x2                    [A1x2,bc11,Aw00]   
Aee1                    [Aee1,Aee0]
Run Code Online (Sandbox Code Playgroud)

注意:真实数据集在子节点和最终父节点之间可能有很多直接前驱节点。

numpy python-3.x pandas

4
推荐指数
1
解决办法
581
查看次数