стандартная карта для игрушек / тестовых данных в пандах [дубликат]

Другое решение состоит в том, чтобы выполнить код через последовательный исполнитель nsynjs .

Если базовая функция многозначна

nsynjs будет последовательно оценивать все обещания и ставить обещания результат в свойство data:

function synchronousCode() {

    var getURL = function(url) {
        return window.fetch(url).data.text().data;
    };
    
    var url = 'https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js';
    console.log('received bytes:',getURL(url).length);
    
};

nsynjs.run(synchronousCode,{},function(){
    console.log('synchronousCode done');
});

Если базовая функция не обещает

Шаг 1. Wrap с обратным вызовом в оболочку, совместимую с nsynjs (если у нее есть обещанная версия, вы можете пропустить этот тест):

var ajaxGet = function (ctx,url) {
    var res = {};
    var ex;
    $.ajax(url)
    .done(function (data) {
        res.data = data;
    })
    .fail(function(e) {
        ex = e;
    })
    .always(function() {
        ctx.resume(ex);
    });
    return res;
};
ajaxGet.nsynjsHasCallback = true;

Шаг 2. Вставить синхронную логику в функцию:

function process() {
    console.log('got data:', ajaxGet(nsynjsCtx, "data/file1.json").data);
}

Шаг 3. Выполнить функцию синхронно через nnsynjs:

nsynjs.run(process,this,function () {
    console.log("synchronous function finished");
});

Nsynjs будет оценивать все операторы и выражения шаг за шагом, приостанавливая выполнение в случае, если результат некоторой медленной функции не готов.

Дополнительные примеры здесь: https://github.com/amaksr/nsynjs/tree/master/examples

27
задан canyon289 9 February 2015 в 20:02
поделиться

3 ответа

Поскольку я изначально написал этот ответ, я обновил его многими способами, которые теперь доступны для доступа к наборам образцов данных в Python. Лично я склонен придерживаться любого пакета, который я уже использую (обычно морского или панд). Если вам нужен автономный доступ, установка набора данных с помощью Quilt кажется единственной опцией.

Seaborn

В блестящем графическом пакете seaborn имеется несколько встроенных наборов данных выборки.

import seaborn as sns

iris = sns.load_dataset('iris')
iris.head()
   sepal_length  sepal_width  petal_length  petal_width species
0           5.1          3.5           1.4          0.2  setosa
1           4.9          3.0           1.4          0.2  setosa
2           4.7          3.2           1.3          0.2  setosa
3           4.6          3.1           1.5          0.2  setosa
4           5.0          3.6           1.4          0.2  setosa

Pandas

Если вы не хотите импортировать seaborn, но все же хотите получить доступ к его выборкам данных , вы может использовать подход @ andrewwowens для данных образцов морского судна:

iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')

Обратите внимание, что образцы данных, содержащие категориальные столбцы, имеют свой тип столбца , измененный sns.load_dataset() , и результат может не быть тем же самым, получая его непосредственно из URL.

R выборки наборов данных

Так как любой набор данных может быть прочитан через pd.read_csv(), наборы данных образцов диафрагмы и наконечников также доступны в pandas github repo здесь .

], можно получить доступ ко всем наборам данных выборки R, скопировав URL-адреса из этого репозитория данных репозитория R .

Дополнительные способы загрузки наборов данных выборки R включают statsmodel

import statsmodels.api as sm

iris = sm.datasets.get_rdataset('iris').data

и PyDataset

from pydataset import data

iris = data('iris')

scikit-learn

scikit-learn возвращает образцы данных как массивы numpy, а не кадр данных pandas.

from sklearn.datasets import load_iris

iris = load_iris()
# `iris.data` holds the numerical values
# `iris.feature_names` holds the numerical column names
# `iris.target` holds the categorical (species) values (as ints)
# `iris.target_names` holds the unique categorical names

Quilt

Quilt - это менеджер набора данных, созданный для облегчения управления набором данных. Он включает в себя множество общих наборов данных выборки, таких как несколько из репозитория образцов uciml . На стартовой странице показано, как установить и импортировать набор диафрагмы:

# In your terminal
$ pip install quilt
$ quilt install uciml/iris

После установки набора данных он доступен локально, поэтому это лучший вариант, если вы хотите работать с данными в автономном режиме.

import quilt.data.uciml.iris as ir

iris = ir.tables.iris()
   sepal_length  sepal_width  petal_length  petal_width        class
0           5.1          3.5           1.4          0.2  Iris-setosa
1           4.9          3.0           1.4          0.2  Iris-setosa
2           4.7          3.2           1.3          0.2  Iris-setosa
3           4.6          3.1           1.5          0.2  Iris-setosa
4           5.0          3.6           1.4          0.2  Iris-setosa

Quilt также поддерживает управление версиями данных и включает краткое описание для каждого набора данных.

23
ответ дан Joel Ostblom 3 September 2018 в 17:37
поделиться

Любой общедоступный .csv-файл можно загружать в панды очень быстро, используя свой URL-адрес. Ниже приведен пример использования набора диафрагмы, хранящегося в архиве UCI.

import pandas as pd

file_name = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"

df = pd.read_csv(file_name)

df.head()

Выход здесь - это заголовок файла .csv, который вы только что загрузили с данного URL.

>>> df.head()
   5.1  3.5  1.4  0.2  Iris-setosa
0  4.9  3.0  1.4  0.2  Iris-setosa
1  4.7  3.2  1.3  0.2  Iris-setosa
2  4.6  3.1  1.5  0.2  Iris-setosa
3  5.0  3.6  1.4  0.2  Iris-setosa
4  5.4  3.9  1.7  0.4  Iris-setosa
9
ответ дан koldLight 3 September 2018 в 17:37
поделиться

Для этого сделан rpy2 модуль:

from rpy2.robjects import r, pandas2ri
pandas2ri.activate()

r['iris'].head()

дает

   Sepal.Length  Sepal.Width  Petal.Length  Petal.Width Species
1           5.1          3.5           1.4          0.2  setosa
2           4.9          3.0           1.4          0.2  setosa
3           4.7          3.2           1.3          0.2  setosa
4           4.6          3.1           1.5          0.2  setosa
5           5.0          3.6           1.4          0.2  setosa

До pandas 0.19 вы могли бы использовать собственный интерфейс rpy pandas:

import pandas.rpy.common as rcom
iris = rcom.load_data('iris')
print(iris.head())

дает

   Sepal.Length  Sepal.Width  Petal.Length  Petal.Width Species
1           5.1          3.5           1.4          0.2  setosa
2           4.9          3.0           1.4          0.2  setosa
3           4.7          3.2           1.3          0.2  setosa
4           4.6          3.1           1.5          0.2  setosa
5           5.0          3.6           1.4          0.2  setosa

rpy2 также предоставляет способ для преобразования объектов R в объекты Python :

import pandas as pd
import rpy2.robjects as ro
import rpy2.robjects.conversion as conversion
from rpy2.robjects import pandas2ri
pandas2ri.activate()

R = ro.r

df = conversion.ri2py(R['mtcars'])
print(df.head())

дает

    mpg  cyl  disp   hp  drat     wt   qsec  vs  am  gear  carb
0  21.0    6   160  110  3.90  2.620  16.46   0   1     4     4
1  21.0    6   160  110  3.90  2.875  17.02   0   1     4     4
2  22.8    4   108   93  3.85  2.320  18.61   1   1     4     1
3  21.4    6   258  110  3.08  3.215  19.44   1   0     3     1
4  18.7    8   360  175  3.15  3.440  17.02   0   0     3     2
14
ответ дан unutbu 3 September 2018 в 17:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: