我有以下代码:
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。
答案 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