Skip to main content
 首页 » 编程设计

python之Pandas之将内存中存储为字符串的 csv 读取到数据框

2025年05月04日2798°冷暖

用逗号分隔的文本存储在如下所示的 var 中

data = """ 
Class,Name,Long,Lat 
A,ABC11,139.6295542,35.61144069 
A,ABC20,139.630596,35.61045559 
A,ABC03,139.6300307,35.61327781 
B,ABC54,139.7787818,35.68847945 
B,ABC05,139.7814447,35.6816882 
B,ABC06,139.7788191,35.681865 
B,ABC24,139.7790396,35.67781697 
""" 

有没有一种快速的方法可以将其读入 pandas 数据框而无需存储到文件并使用 pd.read_csv()。我来自 R,它提供了一种很好的方法来执行此操作,如下所示。

text <- " 
State,District,County,Num Voters,Total Votes in State,Votes for None,Candidate Name,Party,Votes Scored 
CA,San Diego,Delmar,190962,48026634,2511,A1,IND,949 
CA,San Diego,Delmar,190962,48026634,2511,A2,RP(K),44815 
" 
df <- read.table(textConnection(text), sep = ",", header = TRUE) 

请您参考如下方法:

使用 io.StringIO 对象(文本 I/O 的内存流):

import pandas as pd 
from io import StringIO 
 
data = """ 
Class,Name,Long,Lat 
A,ABC11,139.6295542,35.61144069 
A,ABC20,139.630596,35.61045559 
A,ABC03,139.6300307,35.61327781 
B,ABC54,139.7787818,35.68847945 
B,ABC05,139.7814447,35.6816882 
B,ABC06,139.7788191,35.681865 
B,ABC24,139.7790396,35.67781697 
""" 
 
df = pd.read_csv(StringIO(data)) 
print(df) 

输出:

  Class   Name        Long        Lat 
0     A  ABC11  139.629554  35.611441 
1     A  ABC20  139.630596  35.610456 
2     A  ABC03  139.630031  35.613278 
3     B  ABC54  139.778782  35.688479 
4     B  ABC05  139.781445  35.681688 
5     B  ABC06  139.778819  35.681865 
6     B  ABC24  139.779040  35.677817