2016-11-09 3 views
3

Как получить pandas для добавления целого числа и сохранения целочисленного типа данных? Я понимаю, что я могу df.test.astype (int) во весь столбец после ввода данных, но если я могу это сделать в то время, когда я добавляю данные, похоже, это будет лучшим способом. Вот пример:append pandas dataframe автоматически отображается как float, но хочу int

from bitstring import BitArray 
import pandas as pd 
df = pd.DataFrame() 

test = BitArray('0x01') 
test = int(test.hex) 
print(test) 
df = df.append({'test':test, 'another':5}, ignore_index=True) 

print(df.test) 
print(df.another) 

Вот результат:

1 
0 1.0 
Name: test, dtype: float64 
0 5.0 
Name: another, dtype: float64 

Это меняет целые числа с плавающей точкой.

ответ

3

Это потому, что ваш исходный dataframe пуст. Инициализируйте его с помощью целого столбца.

df = pd.DataFrame(dict(A=[], test=[], another=[]), dtype=int) 
df.append(dict(A=3, test=4, another=5), ignore_index=True) 

enter image description here


Если бы я сделал

df = pd.DataFrame() 
df.append(dict(A=3, test=4, another=5), ignore_index=True) 

enter image description here

+0

это можно сделать по-разному dtypes в колонке? – kaminsknator

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