Numpy разделить данные с помощью определенного имени столбца? - PullRequest
0 голосов
/ 06 февраля 2019

Как указать столбец для numpy для разделения набора данных?

Сейчас я пытаюсь разделить набор данных, который у меня есть, который имеет следующий формат, это элементы данных,

{
            "tweet_id": "1234456", 
            "tweet": "hello world", 
            "labels": {
                "item1": 2, 
                "item2": 1
            }
        }, 
        {
            "tweet_id": "567890976", 
            "tweet": "testing", 
            "labels": {
                "item1": 2, 
                "item2": 1, 
                "item3": 1, 
                "item4": 1
            }
        }

на данный момент работающий метод получает только tweet_ids в списке и разделяет его, но я хотел бы знать, есть ли метод для прямого разделения этого файла json с помощью numpy.split ()

TRAINPCT = 0.50
DEVPCT = 0.25
TESTPCT = 1 - TRAINPCT - DEVPCT

train, dev, test = np.split(dataitems, [int(TRAINPCT * len(dataitems)), int((TRAINPCT+DEVPCT) * len(dataitems))]) 

это просто выкидывает и ошибка

OrderedDict([('tweet_id', '1234456'), ('tweet', "hello world""), ('labels', Counter({'item1': 2, 'item2': 1}))])],
      dtype=object) is not JSON serializable

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Понял, я не мог сделать это, как думал со всем на одном и том же кадре данных.Что я сделал, так это извлек только tweet_id s в один фрейм данных -> разделить их, а затем сопоставить метки из исходного набора данных в зависимости от разделения tweet_id.

0 голосов
/ 06 февраля 2019

pandas предоставляет функциональность для преобразования данных json в объект DataFrame, который в основном работает как таблица.Возможно, стоит подумать об этом вместо использования numpy:

In [1]: from pandas.io.json import json_normalize
   ...: 
   ...: raw = [{"tweet_id": "1234456",
   ...:         "tweet": "hello world",
   ...:         "labels": {
   ...:             "item1": 2,
   ...:             "item2": 1
   ...:         }},
   ...:        {"tweet_id": "567890976",
   ...:         "tweet": "testing",
   ...:         "labels": {
   ...:             "item1": 2,
   ...:             "item2": 1,
   ...:             "item3": 1,
   ...:             "item4": 1
   ...:         }
   ...:         }]
   ...: 
   ...: df = json_normalize(raw)

In [2]: df
Out[2]: 
   labels.item1  labels.item2  labels.item3  labels.item4        tweet  \
0             2             1           NaN           NaN  hello world   
1             2             1           1.0           1.0      testing   

    tweet_id  
0    1234456  
1  567890976  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...