gpt4 book ai didi

python - 用python进行数据处理

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:02 24 4
gpt4 key购买 nike

我是 python 的新手,所以请原谅我的问题。在我的工作中,我必须处理以文本文件表示的表格数据。这些值由逗号或分号分隔。此类文件的简化示例可能如下所示:

City;Car model;Color;Registration number
Moscow;Mercedes;Red;1234
Moscow;Mercedes;Red;2345
Kiev;Toyota;Blue;3423
London;Fiat;Red;4545

我的目标是有一个脚本可以告诉我在莫斯科有多少辆梅赛德斯(在我们的例子中有两辆)并保存一个新的文本文件 Moscow.txt

Moscow;Mercedes;Red;1234
Moscow;Mercedes;Red;2345

非常感谢您的帮助。

最佳答案

我建议查看 pandas图书馆。您可以对表格数据进行各种巧妙的操作。首先读入:

>>> import pandas as pd
>>> df = pd.read_csv("cars.ssv", sep=";")
>>> df
City Car model Color Registration number
0 Moscow Mercedes Red 1234
1 Moscow Mercedes Red 2345
2 Kiev Toyota Blue 3423
3 London Fiat Red 4545

以不同的方式索引它:

>>> moscmerc = df[(df["City"] == "Moscow") & (df["Car model"] == "Mercedes")]
>>> moscmerc
City Car model Color Registration number
0 Moscow Mercedes Red 1234
1 Moscow Mercedes Red 2345
>>> len(moscmerc)
2

写出来:

>>> moscmerc.to_csv("moscmerc.ssv", sep=";", header=None, index=None)
>>> !cat moscmerc.ssv
Moscow;Mercedes;Red;1234
Moscow;Mercedes;Red;2345

您还可以同时处理多个组:

>>> df.groupby(["City", "Car model"]).size()
City Car model
Kiev Toyota 1
London Fiat 1
Moscow Mercedes 2
Dtype: int64

更新:@Anthon 指出上面只处理分号分隔符的情况。如果整个文件中都有一个逗号,那么您可以只使用 , 而不是 ;,这样就很简单了。更有趣的情况是文件中的分隔符不一致,但这也很容易处理:

>>> !cat cars_with_both.txt
City;Car model,Color;Registration number
Moscow,Mercedes;Red;1234
Moscow;Mercedes;Red;2345
Kiev,Toyota;Blue,3423
London;Fiat,Red;4545
>>> df = pd.read_csv("cars_with_both.txt", sep="[;,]")
>>> df
City Car model Color Registration number
0 Moscow Mercedes Red 1234
1 Moscow Mercedes Red 2345
2 Kiev Toyota Blue 3423
3 London Fiat Red 4545

更新#2:现在文本是俄语的——当然是。 :^) 尽管如此,如果一切都正确编码,并且您的终端配置正确,那也应该可以工作:

>>> df = pd.read_csv("russian_cars.csv", sep="[;,]")
>>> df
City Car model Color Registration number
0 Москва Mercedes красный 1234
1 Москва Mercedes красный 2345
2 Киев Toyota синий 3423
3 Лондон Fiat красный 4545

关于python - 用python进行数据处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15639262/

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