使用 Python 从 .csv 文件中创建数据模型

数据挖掘 Python 数据集 CSV
2022-02-15 14:45:15

我想.csv使用 Python 从文件中创建数据模型。我的意思是创建依赖项,例如主键和东西,以便我可以检查新的.csv是否符合给定的数据模型。我将不胜感激有关如何做到这一点,库,框架等的一些建议

3个回答

除了@El Burro 的回答之外,大多数模型制作概念的训练/测试证明都发生在操作上DataFrame,它提供了简单的功能,如链接操作、广播、填充缺失值等,并且pandas就是这样一个库。它也具有数据类型推断功能,并且它使用numpy快速操作数组的 python 堆栈。

除此之外,正如您询问是否要检查传递给模型的传入数据的格式。你可以pandas在这里使用(这只是一个你可以实现各种东西的演示,可能有更好的方法来实现它)

>> import pandas as pd
>> df1 = pd.DataFrame({'a': [1, 2, 3], 'b': ['a', 'b', 'c']})
>> df1
   a  b
0  1  a
1  2  b
2  3  c
>> df2 = pd.DataFrame({'a': [1, 2, 3], 'b': [1.0, 2.0, 3.0]})
>> df2
   a  b
0  1  1.0
1  2  2.0
2  3  3.0
>> df1.dtypes
a     int64
b    object
dtype: object
>> df2.dtypes
a      int64
b    float64
dtype: object
>> df1.dtypes.to_dict() == df2.dtypes.to_dict()
False

在我看来,这可能是通过规则集最快实现的。您可以通过 pandas 轻松加载和操作数据。然后你只需要确定什么是规则。但是如果没有任何细节,很难更深入地了解细节。正则表达式可能是一种强大的工具,但鉴于您提供的信息很少,这是一种推测。

循环可能会给您更多控制权。csv软件包可让您逐行读取 CSV 文件。

import csv

# Open the file in read mode. If encoding is an issue, specify the correct encoding here.
with open('my_csv_file.csv', mode='r', encoding='UTF8') as file:

    # Read CSV file. Specify the correct delimiter and how to handle quotation marks.
    lines = csv.reader(file, delimiter=',', quoting=csv.QUOTE_NONE)

    # Exctract header.
    header = next(data)
    ... # Check if the header complies to your data model.

    # Loop through body.
    for line in lines:
        ... # Check if the line complies to your data model.

对于实际检查,请查看assert命令。例如:

x = 1.0
try:
    assert(isinstance, x, int)    # Check if x is an integer.
except AssertionError:
    x = int(x)    # Handle the error.