gpt4 book ai didi

python - 将字典转换为可以转换的 float

转载 作者:行者123 更新时间:2023-11-30 22:11:45 25 4
gpt4 key购买 nike

我希望创建一个函数,可以将从 CSV 导入的列表转换为 float ,其中数字可以转换为 float 。

在一个 CSV 中,字典看起来像 ['a':'1','b':'1.1','c':'1.2'],在另一个 CSV 中,它看起来像['1':'1','2':'1.2','3':'1.5'],也可能是上面两个['1 ':'1','1','2':'1.4','未知':'1.4']

现在,这些是使用 pd.read_csv(SheetAddress, header=None, index_col=0, squeeze=True).to_dict() 导入的,但这会将它们全部保留为字符串。我尝试编写一个函数将它们转换为新字典,其中包含所有可以转换为 float 的字符串,并将字符串保留为字符串。

def DictToInt(DictionaryToConvert, New_Dictionary):
for Column1, Column2 in DictionaryToConvert.items():
if Column1.isdigit():
float(Column1)
elif Column2.isdigit():
float(Column2)

这几乎有效,它将我的字典转换为所有 [['1':'1','2':'1.2','3':'1.5'] 的 float 类型字典,但对于混合类型它不起作用。我还没有在 ['a':'1','b':'1.1','c':'1.2'] 类型上测试它,因为它不适用于混合,但构建解决方案时必须牢记这一点。

为什么['UNKNOWN':'1']没有转换为['UNKNOWN':1.0],我的循环中的逻辑是否不正确?这是此类解决方案的正确方法吗?

最佳答案

这应该可以解决问题,data 是你的原始字典,结果 - 好吧,你猜对了 =)

def convert_to_float(num) :
try :
num = float(num)
except ValueError :
pass
return num

result = { convert_to_float(k) : convert_to_float(v) for k,v in data.items() }

关于python - 将字典转换为可以转换的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51328832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com