gpt4 book ai didi

python - 来自困惑列表的 Pandas 数据框

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:35 25 4
gpt4 key购买 nike

我有一个来自客户端的非常丑陋的数据导入,位于 .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']

我希望将其加载到 pandas 数据框中。

顶部两行和底部两行可以被丢弃。每个列表包含一个字符串记录,带有 ; 分隔符。我知道 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

由于我有很多这样的列表,我如何以编程方式获取第三行,删除第一个字符串并从剩余的字符串中创建列标题?如何正确地用 ; 分隔每个后续记录?

最佳答案

您可以使用列表理解,其中通过stripsplit值删除\n:

results_df = pd.DataFrame([x.strip().split(';') for x in results[3:-2]])
results_df.columns = results[2].strip().split(';')

print(results_df)

$TSYS:CODE NAME TYPE PCU
0 A Car PrT 1.000
1 Air_Bus Airport Bus PuT 1.000
2 B Bus PuT 1.000
3 C Company Bus PrT 2.000
4 CB City Bus PuT 1.000
5 FE Ferry PuT 1.000
6 GV1 2-Axle Rigid Goods Vehicle PrT 1.500
7 GV2 3/4 Axle Rigid Goods Vehicle PrT 2.000
8 GV3 3/4 Axle Artic Goods Vehicle PrT 3.000
9 GV4 5+ Axle Artic Goods Vehicle PrT 3.000
10 IB Intercity Bus PuT 1.000
11 IN Industry Bus PuT 1.000
12 Loc Local Bus PuT 1.000
13 LR Light Rail PuT 1.000
14 R Rail PuT 1.000
15 S School Bus PrT 2.000
16 T Taxi PrT 1.100
17 TR Tram PuT 1.000
18 W Walk PrT 0.000
19 WB WaterBus PuT 1.000
20 WT Water Taxi PuT 1.000
21 W_PuT Walk_PuT PuTWalk 1.000

关于python - 来自困惑列表的 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42418141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com