如果我得到像sample这样的字符串数据,我如何将字符串数据转换为字符串数据
import pandas as pd sample = "'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]" df = pd.DataFrame({sample}) df.to_excel("output.xlsx", index=False)
字符串结果是1行,但我想要3rows
lpwwtiir1#
由于字符串表示一个有效的字典字面量,您可以使用Abstract Syntax Tree(AST)模块。您将导入ast模块,使用它将'sample'转换为字典对象,然后可以将其解析为像这样的语法框架;
import ast import pandas as pd sample = "'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]" sample_dict = ast.literal_eval("{" + sample + "}") df = pd.DataFrame(sample_dict) df.to_excel("output.xlsx", index=False) # Out put of df... A B C 0 1 4 7 1 2 5 8 2 3 6 9
字符串
0ve6wy6x2#
你可以使用eval,但我不推荐它。
eval
In [2]: sample = "'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]" In [3]: data = eval('{' + sample + '}') In [4]: pd.DataFrame(data) Out[4]: A B C 0 1 4 7 1 2 5 8 2 3 6 9
ct3nt3jp3#
或者,您可以实现json.loads
json.loads
import pandas as pd import json sample = "'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]" # Convert single quotes to double quotes sample_dict = "{" + sample.replace("'", '"') + "}" # Convert string to dictionary using json.loads data_dict = json.loads(sample_dict) df = pd.DataFrame(data_dict) print(df) # Output A B C 0 1 4 7 1 2 5 8 2 3 6 9
3条答案
按热度按时间lpwwtiir1#
由于字符串表示一个有效的字典字面量,您可以使用Abstract Syntax Tree(AST)模块。
您将导入ast模块,使用它将'sample'转换为字典对象,然后可以将其解析为像这样的语法框架;
字符串
0ve6wy6x2#
你可以使用
eval
,但我不推荐它。字符串
ct3nt3jp3#
或者,您可以实现
json.loads
字符串