如何在数据框中强制指定列类型?

时间:2019-01-22 14:28:38

标签: python pandas

我有以下代码:

import pandas as pd

dic = {"rates":{
   "IT":{
     "country_name":"Italy",
     "standard_rate":20,
     "reduced_rates":{
       "food":13,
       "books":11
     }
  },

   "UK":{
     "country_name":"United Kingdom",
     "standard_rate":21,
     "reduced_rates":{
       "food":12,
       "books":1
     }
  }  
}}

df = pd.DataFrame([{'code': k, 'standard_rate': v["standard_rate"]} for k,v in dic["rates"].items()])
print(df)

哪个给:

  code    standard_rate
0   IT           20
1   UK           21

如何强制将standard_rate输入为float类型?

注意:我知道如何将其打印为浮点型。这不是我想要的。 我想更改数据框本身中列的类型。因此,如果我将其导出到csv到Json,则standard_rate中的值将为float。

1 个答案:

答案 0 :(得分:3)

在列表理解中进行投射:

comp=[{'code': k, 'standard_rate': float(v["standard_rate"])} for k,v in dic["rates"].items()]
df = pd.DataFrame(comp)
print (df)
  code  standard_rate
0   IT           20.0
1   UK           21.0