В Python Pandas Не могу добавить новый столбец после столбца datetime - PullRequest
0 голосов
/ 12 июня 2018

Я не могу объединить новые столбцы с существующим Pandas DataFrame, если последний столбец существующего DataFrame относится к типу datetime.Вот минимальный пример:

import pandas as pd
import numpy as np

dates      = [pd.Timestamp('2012-05-01'), pd.Timestamp('2012-05-02'), 
             pd.Timestamp('2012-05-03')]
ed         = pd.DataFrame( dates, index = range(3), columns=['Time'])
ed['Time'] = ed['Time'].dt.tz_localize('UTC').dt.tz_convert('US/Central')

ed         = pd.concat([ed, pd.DataFrame(columns = [ 'Column1', 'Column2'] 
             )], sort = False)



Traceback (most recent call last):
File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 2878, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-c82182e48b5f>", line 8, in <module>
ed         = pd.concat([ed, pd.DataFrame(columns = [ 'Column1', 'Column2'] )], sort = False)
File "C:\Anaconda2\lib\site-packages\pandas\core\reshape\concat.py", line 226, in concat
return op.get_result()
File "C:\Anaconda2\lib\site-packages\pandas\core\reshape\concat.py", line 423, in get_result
copy=self.copy)
File "C:\Anaconda2\lib\site-packages\pandas\core\internals.py", line 5421, in concatenate_block_managers
concatenate_join_units(join_units, concat_axis, copy=copy),
File "C:\Anaconda2\lib\site-packages\pandas\core\internals.py", line 5565, in concatenate_join_units
for ju in join_units]
File "C:\Anaconda2\lib\site-packages\pandas\core\internals.py", line 5851, in get_reindexed_values
 if not self.block._can_consolidate:
AttributeError: 'NoneType' object has no attribute '_can_consolidate'

1 Ответ

0 голосов
/ 12 июня 2018

что если вы измените столбец ed['Time'] после констатации ed на новый df?

dates = [pd.Timestamp('2012-05-01'), pd.Timestamp('2012-05-02'), pd.Timestamp('2012-05-03')]
ed = pd.DataFrame( dates, index = range(3), columns=['Time'])
ed['Time'] = ed['Time'].dt.tz_localize('UTC').dt.tz_convert('US/Central')
ed = pd.concat([ed, pd.DataFrame(columns = [ 'Column1', 'Column2'])], sort = False, axis=1) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...