将单引号替换为双引号python pandas datafram

2024-09-28 19:01:31 发布

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

我想将单引号(')替换为双引号(“),使其成为python dataframe中正确的json列值。在

例如csv文件看起来像。。。在

Unit Id Batch Id                               Items prod
A108    qa120  {'A': 123, 'B': 342, 'C': 454}   
P258    re015  {'A': 124, 'B': 234, 'C': 343} 

我正在从csv读取这些值到pandas dataframe。我试了好几种方法,但都不走运。在

^{pr2}$

提前谢谢你的帮助。在


Tags: 文件csvidjsondataframebatchunititems
3条回答

如果问题是将单引号转换为双引号,而不是将其读入数据帧后的限制,则可以在将其读入数据帧之前更改.csv文件

$ sed -i "s/'/\"/g" file_name.csv

如果在读入数据帧后必须替换它们,请尝试this post中提到的解决方案:

df.replace({'\'': '"'}, regex=True)

看来你需要。在

import pandas as pd
import json
import ast


df = pd.DataFrame({"Unit Id": ["A108", "P258"], "Batch Id": ["qa120", "re015"], "Items prod": ["{'A': 123, 'B': 342, 'C': 454}", "{'A': 124, 'B': 234, 'C': 343}"]})
df["NEW"] = df["Items prod"].apply(ast.literal_eval).apply(json.dumps)
print(df)

输出:

^{pr2}$

可以将值转换为字典,例如:

import ast

df['<column_name>'] = df['<column_name>'].apply(ast.literal_eval)

但如果输入数据是json文件(字符串),则最好使用 ^{}。在

相关问题 更多 >