python 使用Pandas将数据框转换为字典时保留数字列表(停止转换为字符串

c3frrgcw  于 2023-03-16  发布在  Python
关注(0)|答案(2)|浏览(89)

我想将Pandas Dataframe 转换为字典。此数据集有许多变量,以列表形式存储,即[0,2,5,6]。当我使用www.example.com _dict将 Dataframe 转换为字典pd.to时,这些列表以字符串形式存储,而不是数字列表(例如,“[0,2,5,6]”而不是[0,2,5,6])。是否有简单的方法来执行此操作,或者我需要在转换后迭代字典列表?如果需要,如何执行此迭代?

NDF = DF.to_dict(orient = 'records')

电流输出:

..., 'Description': 'Version 5.1', 'Coord': '[128, 32]', 'Elev': '[0.19, 0.43]', 'Strength': 150,...

预期输出:

..., 'Description': 'Version 5.1', 'Coord': [128, 32], 'Elev': [0.19, 0.43], 'Strength': 150.0, ...
jgwigjjp

jgwigjjp1#

看看这是否对您有帮助:

a = ''
a = a.split()
a[0] = a[0][1:]
for i in range(len(a)):
    a[i] = a[i][:-1]
    a[i] = int(a[i])
print(a)
qzwqbdag

qzwqbdag2#

可以像这样迭代当前输出(假设没有嵌套列表作为任何键的值)

current_output = {
    'Description': 'Version 5.2',
    'Coord': '[128, 32]',
    'Elev': '[0.19, 0.43]',
    'Strength': 150
    }

for k, v in current_output.items():
    if type(current_output[k]) == str and current_output[k].startswith('['):
        current_output[k] = [float(i) for i in current_output[k][1:-1].split(',')]

print(current_output)
>> {'Description': 'Version 5.2', 'Coord': [128.0, 32.0], 'Elev': [0.19, 0.43], 'Strength': 150}

相关问题