如何在pandas中将字符串解析为DataFrame

r3i60tvu  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(111)

如果我得到像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

lpwwtiir

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

字符串

0ve6wy6x

0ve6wy6x2#

你可以使用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

字符串

ct3nt3jp

ct3nt3jp3#

或者,您可以实现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

字符串

相关问题