Python / Pandas - как определить dtype столбца, когда Dataframe является многоиндексным DataFrame? - PullRequest
0 голосов
/ 01 мая 2020

Допустим, у меня есть следующий многоиндексный DataFrame.

import pandas as pd
row_axis = pd.MultiIndex(levels=[[],[]], codes=[[],[]], names=['Data', 'Period'])
column_axis = [['Index','Index', 'Data'],['First','Last','Min']]
MD = pd.DataFrame(index=row_axis, columns=column_axis)

Позже, при заполнении строки, у меня могут быть такие значения:

MD.loc[('hi','5m'),:]=[5,10,'hello']

Проверка dtypes, это говорит мне:

In [17]:MD.dtypes
Out[17]: 
Index  First    object
       Last     object
Data   Min      object
dtype: object

Как я могу преобразовать тип в первом столбце ('Индекс', 'Первый')?

Попытка:

MD = MD.astype({'(Index, First)' : int)

Дает :

KeyError: 'Only a column name can be used for the key in a dtype mappings argument.'

Любая помощь приветствуется, спасибо!

1 Ответ

2 голосов
/ 01 мая 2020

В вашем случае

MD = MD.astype({('Index', 'First') : int})
MD.dtypes
Out[53]: 
Index  First     int32
       Last      int64
Data   Min      object
dtype: object
...