#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. Я понял, почему. Мой фрейм данных пуст, лол