Python / Pandas-当Dataframe是多索引DataFrame时如何定义列的dtype?

问题描述 投票:0回答:1

假设我拥有以下多索引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']

检查dtype,它告诉我:

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.'

感谢您的任何帮助,谢谢!

python pandas multi-index
1个回答
2
投票

根据您的情况

MD = MD.astype({('Index', 'First') : int})
MD.dtypes
Out[53]: 
Index  First     int32
       Last      int64
Data   Min      object
dtype: object
© www.soinside.com 2019 - 2024. All rights reserved.