2016-02-04 3 views
1

Я пишу скрипт python для использования в AzureML. Мой набор данных довольно большой. У меня есть набор данных с столбцами с именем ID (int) и DataType (текст). Я хотел бы объединить эти значения, чтобы иметь только один столбец с текстом, который имеет как ID, так и DataType, разделенные запятой.OverflowError: размер не помещается в int

Как я могу избежать получения ошибки, когда я это делаю. Есть ли у меня ошибки в коде?

Когда я запускаю этот код я получаю следующее сообщение об ошибке:

Error 0085: The following error occurred during script evaluation, please view the output log for more information: 
---------- Start of error message from Python interpreter ---------- 
data:text/plain,Caught exception while executing function: Traceback (most recent call last): 
File "C:\server\invokepy.py", line 167, in batch 
idfs.append(rutils.RUtils.RFileToDataFrame(infile)) 
File "C:\server\RReader\rutils.py", line 15, in RFileToDataFrame 
rreader = RReaderFactory.construct_from_file(filename, compressed) 
File "C:\server\RReader\rreaderfactory.py", line 25, in construct_from_file 
return _RReaderFactory.construct_from_stream(stream) 
File "C:\server\RReader\rreaderfactory.py", line 46, in construct_from_stream 
return RReader(BinaryReader(RFactoryConstants.big_endian, stream.read())) 
File "C:\pyhome\lib\gzip.py", line 254, in read 
self._read(readsize) 
File "C:\pyhome\lib\gzip.py", line 313, in _read 
self._add_read_data(uncompress) 
File "C:\pyhome\lib\gzip.py", line 329, in _add_read_data 
self.crc = zlib.crc32(data, self.crc) & 0xffffffffL 
OverflowError: size does not fit in an int 

Мой код, как показано ниже:

# The script MUST contain a function named azureml_main 
# which is the entry point for this module. 
# 
# The entry point function can contain up to two input arguments: 
# Param<dataframe1>: a pandas.DataFrame 
# Param<dataframe2>: a pandas.DataFrame 

def azureml_main(dataframe1): 
import pandas as pd 
dataframe1['SignalID,DataType'] = dataframe1['ID'] + " , " + dataframe1['DataType'] 
dataframe1 = dataframe1.drop('DataType') 
dataframe1 = dataframe1.drop('ID') 
# Return value must be of a sequence of pandas.DataFrame 
return dataframe1 

я получаю ту же ошибку, когда я запускаю код питона по умолчанию в AzureML. Поэтому я уверен, что мои данные просто не соответствуют рамке данных.

по умолчанию сценарий заключается в следующем:

# The script MUST contain a function named azureml_main 
# which is the entry point for this module. 
# 
# The entry point function can contain up to two input arguments: 
# Param<dataframe1>: a pandas.DataFrame 
# Param<dataframe2>: a pandas.DataFrame 
def azureml_main(dataframe1 = None, dataframe2 = None): 

    # Execution logic goes here 
    print('Input pandas.DataFrame #1:\r\n\r\n{0}'.format(dataframe1)) 

    # If a zip file is connected to the third input port is connected, 
    # it is unzipped under ".\Script Bundle". This directory is added 
    # to sys.path. Therefore, if your zip file contains a Python file 
    # mymodule.py you can import it using: 
    # import mymodule 

    # Return value must be of a sequence of pandas.DataFrame 
    return dataframe1, 
+0

Я думаю, что вам нужно 'dataframe1 [ 'SignalID, DataType'] = dataframe1 [ 'ID'] astype (ул) + "" + dataframe1 [ 'DataType'] 'для преобразования идентификатора столбца в' string' и 'dataframe1 = dataframe1.drop (['DataType', 'ID'], axis = 1)' для отбрасывающих столбцов 'DataType' и' ID' – jezrael

ответ

1

Если вам нужно сцепить целое ID и строка DataType столбцы в новый столбец SignalID, использование отливкой astype. После этого вы можете drop столбцы DataType и ID добавления параметра axis=1:.

import pandas as pd 

def azureml_main(dataframe1): 
    dataframe1['SignalID'] = dataframe1['ID'].astype(str) 
             + " , " 
             + dataframe1['DataType'] 

    dataframe1 = dataframe1.drop(['DataType', 'ID'], axis=1) 
    # Return value must be of a sequence of pandas.DataFrame 
    return dataframe1 
+0

Я получаю такая же проблема с вашим кодом. Может быть, потому, что мои данные не вписываются в dataframe? – user3632362

+0

Хм, может быть. Вы можете добавить пример dataframe - 'print dataframe1.head()' – jezrael

+0

Или, может быть, проблема с созданием dataframe ... Как вы создаете dataframe? С 'read_csv'? – jezrael

Смежные вопросы