Какая функция pandas изменяет тип столбца «встроенным» способом?

#python #pandas

#python #pandas

Вопрос:

Я знаю, что следующие команды могут помочь изменить тип столбца:

 df['date'] = str(df['date']) 

df['A'] = pd.to_datetime(df['A'])

df['A'] = df.A.astype(np.datetime64)
  

Но знаете ли вы лучший способ изменить тип столбца встроенным способом, чтобы сделать его в одной строке следующим за другими командами агрегирования, такими как groupby, dropna и т. Д. Например:

 df
#.function to cast df.A to np.datetime64  
.groupby('C') 
.apply(lambda x: x.set_index('A').resample('1M').sum())
  

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

1. Первый пример может не принадлежать ему, поскольку он не изменяет dtype.

2. Также вы можете захотеть проверить pd.Grouper , чтобы избежать временной установки индекса и использования повторной выборки.

3. Потерпите меня с первым примером. Вы правы, в более позднем примере что-то не так с повторной выборкой, потому что он создает новый индекс, и я пытаюсь удалить его inow..

4. Я так поражен тем, что вы находите риск здесь так быстро.. Я изменил метод на pd.Grouper, и теперь он работает отлично.

Ответ №1:

Вы можете использовать assign:

 df.assign(A=pd.to_datetime(df['A']))
  

 df = pd.DataFrame({'A': ['20150101', '20140702'], 'B': [1, 2]})
df
Out: 
          A  B
0  20150101  1
1  20140702  2

df.assign(A=pd.to_datetime(df['A']))
Out: 
           A  B
0 2015-01-01  1
1 2014-07-02  2
  

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

1. Это именно то, что я ищу! Спасибо, Айхан!