python 读取csv文件转成字符串_从CSV读取到 dataframe pandas python时dict对象转换为字符串...

您可以使用literal_eval转换应为字典(或其他类型)的字符串:

from ast import literal_eval

def try_literal_eval(s):

try:

return literal_eval(s)

except ValueError:

return s

现在,您可以将其应用于您的DataFrame:

In [11]: df = pd.DataFrame({'A': ["hello","world",'{"a":5,"b":6,"c":8}',"usa","india",'{"d":9,"e":10,"f":11}']})

In [12]: df.loc[2, "A"]

Out[12]: '{"a":5,"b":6,"c":8}'

In [13]: df

Out[13]:

A

0 hello

1 world

2 {"a":5,"b":6,"c":8}

3 usa

4 india

5 {"d":9,"e":10,"f":11}

In [14]: df.applymap(try_literal_eval)

Out[14]:

A

0 hello

1 world

2 {'a': 5, 'b': 6, 'c': 8}

3 usa

4 india

5 {'d': 9, 'e': 10, 'f': 11}

In [15]: df.applymap(try_literal_eval).loc[2, "A"]

Out[15]: {'a': 5, 'b': 6, 'c': 8}

注意:就其他调用而言,这是非常昂贵的(在时间上),但是,当您在处理DataFrames / Series中的字典时,您必须默认使用python对象,因此事情将会相对缓慢…进行非规范化可能是一个好主意,即将数据作为列返回,例如使用json_normalize.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值