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

when i am adding one empty row then dtype will give wrong value for int --->float,float-->int.

пример1: (без пустой строки dtype функция работает нормально)

  Video Title  Up Ratings  Down Ratings   Views User Name  Subscribers
0    Adelaide        1295       1158259   600.5       Bob        25000
1    Brisbane        5905       1857594  1146.4       Tom        30000
2      Darwin         112        120900  1714.7      Dave        15000
3      Hobart        1357        205556   619.5     Sally        15005
4      Sydney        2058       4336374  1214.8      Rick        20000
5   Melbourne        1566       3806092   646.9      Mary        31111
6       Perth        5386       1554769   869.4   Roberta        11000

In [21]: df.dtypes
Out[21]: 
Video Title      object
Up Ratings       int64
Down Ratings     int64
Views            float64
User Name        object
Subscribers      int64
dtype: object

пример: (когда я получаю другой dtype при добавлении пустой строки в dataframe.)

  Video Title  Up Ratings  Down Ratings   Views User Name  Subscribers
0
1    Adelaide        1295       1158259   600.5       Bob        25000
2    Brisbane        5905       1857594  1146.4       Tom        30000
3      Darwin         112        120900  1714.7      Dave        15000
4
5      Hobart        1357        205556   619.5     Sally        15005
6      Sydney        2058       4336374  1214.8      Rick        20000
7   Melbourne        1566       3806092   646.9      Mary        31111
8       Perth        5386       1554769   869.4   Roberta        11000

In [21]: df.dtypes
Out[21]: 
Video Title      object
Up Ratings       float64
Down Ratings     float64
Views            int64
User Name        object
Subscribers      float64
dtype: object

Кто-нибудь может подсказать мне, как исправить функциональность функции dtype без явного преобразования типа данных столбцов в конце кода?

Naruto

Ответы (2)

Возможно, проблема в самой функции dtype. Я бы предложил вам найти эти пустые строки,

text_empty = df['column name'].str.len() > -1
[df.loc[text_empty].index]

и затем пропустить эти строки, передав их в pandas.read_csv()

.

Вы также можете отбросить значения nan с помощью dropna()

Если вам не нужны пустые строки, вы можете удалить эти строки следующим образом:

df=df.dropna()

2022 WebDevInsider