[PYTHON] Fractionnement des données de formation étiquetées sur le nettoyage des pandas

Ce que j'ai fait

J'ai créé une fonction qui divise les données d'entraînement étiquetées de 0 à 9 par des étiquettes arbitraires. Voici un exemple de texte à traiter cette fois.

sample.txt


data1	0
data2	1
data3	2
data4	3
data5	4
data6	5
data7	6
data8	7
data9	8
data10	9

Les données et son étiquette sont attachées au dos. Il n'y a pas d'en-tête particulier, etc. Cette fois, sélectionnez plusieurs étiquettes spécifiques et divisez sample.txt. Voici le code source.

conditional_list_split.py


# -*- coding: utf-8 -*-
import glob
import os
import argparse
from PIL import Image
import cv2
import matplotlib.pyplot as plt
import numpy
import re
import pandas as pd


def conditional_list_split(lbl, path):
    lbls = lbl.split(',')
    df = pd.read_table(path, sep=' ', encoding='utf-8',header=None)

    df.columns = ['data', 'label']
    df_slct = df.where(df['label'].isin(lbls)).dropna(how='all')
    df_no_slct = df.where(~df['label'].isin(lbls)).dropna(how='all')

    df_slct['label'] = df_slct['label'].astype('int64')
    df_no_slct['label'] = df_no_slct['label'].astype('int64')
    dirname = os.path.dirname(path)
    slct_path = dirname + '\\' + os.path.splitext(os.path.basename(path))[0] + '_target.txt'
    no_slct_path = dirname + '\\' + os.path.splitext(os.path.basename(path))[0] + '_no_target.txt'
    df_slct.to_csv(slct_path, header=False, index=False, sep=' ', encoding='utf-8')
    df_no_slct.to_csv(no_slct_path, header=False, index=False, sep=' ', encoding='utf-8')


def main():
    parser = argparse.ArgumentParser(description='conditional_list_split')
    parser.add_argument('--conditions', required=True, default=None)
    parser.add_argument('--datas', help='Path to label list file')
    args = parser.parse_args()
    labels = args.conditions
    conditional_list_split(labels, args.datas)


if __name__ == '__main__':
    main()

Comment utiliser

Ligne de commande.txt


python conditional_list_split.py --conditions 0,1,2 --datas sample.txt

Exemple de résultat d'exécution

sample_target.txt


data1	0
data2	1
data3	2

sample_no_target.txt


data4	3
data5	4
data6	5
data7	6
data8	7
data9	8
data10	9

Recommended Posts

Fractionnement des données de formation étiquetées sur le nettoyage des pandas
Créer des données d'entraînement
lecture de données pandas
Comment diviser les données de formation en machine learning en variables objectives et autres dans Pandas
Nettoyage des données 2 Nettoyage des données à l'aide de DataFrame
Fractionner les données par seuil
Données de formation par CNN
Visualisation des données avec les pandas
Manipulation des données avec les Pandas!
Mélangez les données avec les pandas
Analyse de données à l'aide de pandas python
Conseils de traitement des données avec Pandas