从csv读取到dataframe pandas python时dict对象转换为字符串

2024-07-04 05:16:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,它有很多列。一列包含dict对象和字符串形式的数据。在

例如:Column包含如下数据:{“a”:5,“b”:6,“c”:8},“美国”,“印度”,“a”:9,“b”:10,“c”:11}

当我使用以下命令将csv读入数据帧时:

df = pd.read_csv(path)

当我做^{时,这个列数据被识别为字符串 检查存储在此特定列中的每个元素的类型。在

但是无论在csv中还是在dataframe中,数据都没有引号。但是dict对象仍然被转换成字符串并存储在dataframe中。在

在检查列的类型时,发现它是object。在

请建议如何从csv读入dataframe,这样dict对象被识别为dict,字符串在这个特定列中被识别为string。在


Tags: 文件csv数据path对象字符串命令类型
1条回答
网友
1楼 · 发布于 2024-07-04 05:16:52

可以使用^{}转换应该是dict(或其他类型)的字符串:

from ast import literal_eval

def try_literal_eval(s):
    try:
        return literal_eval(s)
    except ValueError:
        return s

现在您可以将此应用于数据帧:

^{pr2}$

注意:就其他调用而言,这是相当昂贵的(时间方面的),但是当您处理数据帧/序列中的字典时,您必须默认返回python对象,因此事情将相对缓慢。。。反规范化可能是一个好主意,例如使用^{}将数据作为列返回。在

相关问题 更多 >

    热门问题