我有以下代码:
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。
最佳答案
将其转换为列表理解:
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/