Почему select_dtypes не работает в этом случае в пандах - PullRequest
0 голосов
/ 23 октября 2018
    import pandas as pd

    import numpy as np

    test_df = pd.DataFrame([[1,2]]*4, columns=['x','y'])

    test_df.iloc[0,0] = '1'
    test_df.iloc[0,0] = 1

    test_df.select_dtypes(include=['number'])

Я хочу знать, почему столбец х не включен в этом случае

1 Ответ

0 голосов
/ 23 октября 2018

Я могу воспроизвести на Pandas v0.19.2.Вопрос в том, когда, если это вообще возможно, Панды выбирают для проверки и пересмотра серии.Сначала вы определяете серию как dtype object с этим присваиванием:

test_df.iloc[0, 0] = '1'

Панды хранят любые серии со строками как object dtype.Затем вы перезаписываете значение в следующей строке, не изменяя явно dtype серии:

test_df.iloc[0, 0] = 1

Но вы должны not , предполагая, что это автоматически вызывает преобразование в числовой dtype для всей серии,Насколько я знаю, это не задокументированное поведение.Хотя он может работать в более поздних версиях, его нельзя использовать для производственного рабочего процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...