панды решают установить новый тип столбца в качестве объекта, даже если все элементы являются int

#python #pandas

Вопрос:

У меня очень большая программа, и в следующей строке иногда создается столбец «день недели», который будет object dtype вместо int64 dtype

 df.loc[:, "weekday"] = pd.to_datetime(df["Date"]).map(lambda x: x.weekday())
 

Я попытался выбросить следующее:

 print(f"weekday previously in columns: {'weekday' in df.columns}")  # got False
df.loc[:, "weekday"] = pd.to_datetime(df["Date"]).map(lambda x: x.weekday())
print(f"weekday type {df.dtypes['weekday']}") # got object
if df.dtypes['weekday'] != 'int64':
    for idx, weekday in zip(df.index, df['weekday']):
        # suprirsingly, this doesn't print out anything!
        if not instance(weekday, int):
            print(idx, weekday, type(weekday))
 

Тот факт, что мой not instance раздел ничего не распечатывает, означает, что все элементы в weekday столбце действительно int есть .

Я также сбросил df в csv, и все будние дни равны «4». В нем нет нулевых или других странных значений.

Тогда что может быть причиной того, что панды решили установить weekday столбец в качестве object dtype? Или какой-либо предложенный способ дальнейшей отладки?

Комментарии:

1. Я понял, почему. Мой фрейм данных пуст, лол