python-3.x - 如何在python中将文本字符串列表转换为熊猫数据框?
问题描述
我有一个代表行和列的文本字符串列表,我想将其转换为 pandas 数据框。
现在我使用将文本复制粘贴到编辑器,然后将其保存为 csv 文件,然后使用pd.read_csv()
. 我确信这可以以某种方式自动化。
对于可重现的示例,请考虑以下列表:
['Symbol,Description,Qty,Trade Price,Mark,Mark Value,P/L Day,P/L Open,P/L ', 'AXTI,AXT INC COM,+90,10.79,9.46,851.40,0.00,-119.70,-12.33', 'INTT,INTEST CORP COM,+50,5.64,5.02,251.00,0.00,-31.00,-10.99', 'ACMR,ACM RESEARCH INC COM CL A,+201,80.9374,73.20,14713.20,0.00,-1,555.21,-9.56', 'ASUR,ASURE SOFTWARE INC COM,+90,7.70,7.20,648.00,0.00,-45.00,-6.49']
解决方案
尝试:
import io
import pandas as pd
df = pd.read_csv(io.StringIO("""
Symbol,Description,Qty,Trade Price,Mark,Mark Value,P/L Day,P/L Open,P/L
AXTI,AXT INC COM,+90,10.79,9.46,851.40,0.00,(119.70),-12.33
INTT,INTEST CORP COM,+50,5.64,5.02,251.00,0.00,(31.00),-10.99
ACMR,ACM RESEARCH INC COM CL A,+201,80.9374,73.20,14713.20,0.00,(1555.21),-9.56
ASUR,ASURE SOFTWARE INC COM,+90,7.70,7.20,648.00,0.00,(45.00),-6.49
"""), sep=r",", engine="python")
印刷:
Symbol Description Qty Trade Price Mark Mark Value \
0 AXTI AXT INC COM 90 10.7900 9.46 851.4
1 INTT INTEST CORP COM 50 5.6400 5.02 251.0
2 ACMR ACM RESEARCH INC COM CL A 201 80.9374 73.20 14713.2
3 ASUR ASURE SOFTWARE INC COM 90 7.7000 7.20 648.0
P/L Day P/L Open P/L
0 0.0 (119.70) -12.33
1 0.0 (31.00) -10.99
2 0.0 (1555.21) -9.56
3 0.0 (45.00) -6.49
注意:我们正在使用comma
分隔符来解析字符串。sep=r","
. 因此,对于您的示例,我必须从 (1,555.21) 中删除逗号。
推荐阅读
- r - 有没有列出所有闪亮包示例的命令?
- datetime - RethinkDB - 按时间戳检索数据:不是 TIME 伪类型?
- asp.net-core - options.ResolveConflictingActions 在 Swashbuckle.AspNetCore 中不起作用,如何解决?
- python - 为什么使用 any() 会导致最大递归深度
- php - 由于来自其他国家/地区的服务器中的可疑行为导致 php 的安全问题
- c - C - 如何在二进制 .dat 文件中搜索模式?
- mysql - 插入时调用存储过程
- html - 导航栏适合大多数页面,除了一个
- angular - 在我的表格组件中检查后,表达式发生了变化
- python - 使用 pd.read_json() 提取网页中的 json 数据?