【发布时间】:2017-02-23 22:14:39
【问题描述】:
我有一个来自客户端的非常丑陋的数据导入,位于 .net 文件中。我设法将其转换为列表列表。一个列表的例子是 gven:
['* Table: Movement one\n',
'* \n',
'$TSYS:CODE;NAME;TYPE;PCU\n',
'A;Car;PrT;1.000\n',
'Air_Bus;Airport Bus;PuT;1.000\n',
'B;Bus;PuT;1.000\n',
'C;Company Bus;PrT;2.000\n',
'CB;City Bus;PuT;1.000\n',',
'FE;Ferry;PuT;1.000\n',
'GV1;2-Axle Rigid Goods Vehicle;PrT;1.500\n',
'GV2;3/4 Axle Rigid Goods Vehicle;PrT;2.000\n',
'GV3;3/4 Axle Artic Goods Vehicle;PrT;3.000\n',
'GV4;5+ Axle Artic Goods Vehicle;PrT;3.000\n',
'IB;Intercity Bus;PuT;1.000\n',
'IN;Industry Bus;PuT;1.000\n',
'Loc;Local Bus;PuT;1.000\n',
'LR;Light Rail;PuT;1.000\n',
'R;Rail;PuT;1.000\n',
'S;School Bus;PrT;2.000\n',
'T;Taxi;PrT;1.100\n',
'TR;Tram;PuT;1.000\n',
'W;Walk;PrT;0.000\n',
'WB;WaterBus;PuT;1.000\n',
'WT;Water Taxi;PuT;1.000\n',
'W_PuT;Walk_PuT;PuTWalk;1.000\n',
'\n',
'* \n']
我希望将其加载到熊猫数据框中。
前两行和下两行可能会被丢弃。每个列表都包含一个字符串记录,带有; 分隔符。我知道read_csv 的分隔符函数存在,但这在这里不起作用,因为此时我没有从文件中读取。列标题也很复杂。第一个$TSYS 记录必须被丢弃,其余的用作列名。我可以使用strip 删除每条记录中的\n。
我试图简单地加载为数据框:
results_df = pd.DataFrame(results[2:-2])
print(results_df.head())
0
0 $TSYS:CODE;NAME;TYPE;PCU\n
1 A;Car;PrT;1.000\n
3 Air_Bus;Airport Bus;PuT;1.000\n
4 B;Bus;PuT;1.000\n
由于我有很多这样的列表,我如何以编程方式获取第 3 行,删除第一个字符串并从剩余的字符串中创建列标题?如何通过; 正确分隔每个后续记录?
【问题讨论】: