Я работаю над проектом, включающим запрос данных из фреймворка данных, выполнение нескольких операций над ним, а затем сохранение его в 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
Сначала вам нужно, чтобы доказать, что они * являются * Интс, а не только парит, которые * смотрите * как ints. :-) Пожалуйста, отредактируйте свой вопрос, чтобы включить результаты 'd.info()'. – DSM
Выполнено - похоже, что вы были правы. Как float может выглядеть как ints? –