2015-10-24 6 views
1

Я работаю над проектом, включающим запрос данных из фреймворка данных, выполнение нескольких операций над ним, а затем сохранение его в csv. Вот урезанный код.pandas.to_csv выводит столбец поплавков вместо целых чисел

get_value() - это функция, которая возвращает среднее значение из пяти значений, полученных из запроса, принудительно в int.

import pandas as pd 
d = pd.DataFrame(columns=['"Column1"','"Column2"']) 
test = pd.read_csv("./test.csv", header = None, low_memory=False) 
for line in range(1, 15): 
    if test.values[line][5] == '1': 
     value = str(get_value(line, 1)) 
    else: 
     value = str(get_value(line, 0)) 
    d.loc[line-1]=[line,value] 
d.to_csv('output.csv', index = False) 

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

1.0,4859 
2.0,7882 
3.0,10248 
4.0,8098 
5.0,8048 
6.0,6087 
7.0,7349 
8.0,8246 
9.0,5863 
10.0,5962 
11.0,7641 
12.0,8127 
13.0,7808 
14.0,9886 

Замена to_csv с оператора печати дает мне dataframe полный красивых Интс:

0  1 4859 
1  2 7882 
2  3 10248 
3  4 8098 
4  5 8048 
5  6 6087 
6  7 7349 
7  8 8246 
8  9 5863 
9  10 5962 
10 11 7641 
11 12 8127 
12 13 7808 
13 14 9886 

В результате я подозреваю, что это что-то делать с to_csv есть, но я новичок и далек от определенного. Что происходит, и есть ли какое-нибудь обходное решение? Спасибо за прочтение.

Редактировать: DSM с благодарностью предложил запустить d.info(). Похоже, он прав, и что они всплывают.

Int64Index: 14 entries, 0 to 13 
Data columns (total 2 columns): 
"Id"  14 non-null float64 
"Sales" 14 non-null object 
+2

Сначала вам нужно, чтобы доказать, что они * являются * Интс, а не только парит, которые * смотрите * как ints. :-) Пожалуйста, отредактируйте свой вопрос, чтобы включить результаты 'd.info()'. – DSM

+0

Выполнено - похоже, что вы были правы. Как float может выглядеть как ints? –

ответ

3

вы можете изменить «плавает» на «междунар» с помощью метода «astype»:

df['id'] =df['id'].astype(int) 
+1

Работал как шарм. Спасибо, JAB. –

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