2016-10-25 4 views
2

Когда я извлекаю данные из файла CSV, у меня есть данные в столбце, который отображается как '7,066' или '203,452,512' В столбце также есть пробелы.Python: невозможно преобразовать строку в число

Я использую Python 3.4 и панда 0.14.1 (не могу использовать панда отправлять, потому что это делает мои петли идут 50times медленнее - так нужно решить, что тоже отдельно)

Я попытался pd.read_csv(dtype={'Col1':np.float64}) в результате ошибка: TypeError: unorderable types: NoneType() > int()

Я также попытался convert_objects(convert_numeric=True), что делает все такие числа в nan

Тяговых волос здесь, на такой незначительной проблеме - прошли решения на месте, но на самом деле застрял - спасибо большого за принимая взгляд pls.

+4

попробовать 'pd.read_csv' с Param' тысячами = «» ', так что распознает номера правильно – EdChum

+0

sonofagun, что сделал это ... – spiff

ответ

0

Использование функции разделения например.

x= "7,66,188" 
y = x.split(',') 
for val in y: 
    print int(val) 

Надеюсь, он сработает для вас.

+0

Благодаря спариванию - я сделал тысячи, как @EdChum (и no @jezrael), и это сделало это - однако, спасибо за это тоже - отметит это. – spiff

+0

Хорошо, что вы разбираетесь в своей проблеме. –

+0

Так я попробовал это, как хорошо .. из положить здесь '7 \ п 66 \ п 188' – spiff

0

Вы не очень понятны - я предполагаю, что вы хотите иметь числа «7,066» или «203,452,512» в качестве чисел (поплавок, как вы уже упоминали try float64) - вы можете прокручивать его, применяя следующее: каждый элемент:

>>> val = '7,666,188' 
>>> val_num = float(val.replace(',', '')) 
>>> val_num 
7666188.0 
+0

Нет, они являются строками, которые находятся в этом формате .. когда я применил «тысячи» в вызове read_csv, он смог преобразовать его в floats .. так выиграл не нужно использовать какие-либо петли и т. д. – spiff

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