我有以下代码:

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_ratefloat类型?

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

最佳答案

将其转换为列表理解:

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

关于python - 如何在数据框中强制指定列类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54310451/

10-12 14:20