我想.csv
使用 Python 从文件中创建数据模型。我的意思是创建依赖项,例如主键和东西,以便我可以检查新的.csv
是否符合给定的数据模型。我将不胜感激有关如何做到这一点,库,框架等的一些建议
使用 Python 从 .csv 文件中创建数据模型
数据挖掘
Python
数据集
CSV
2022-02-15 14:45:15
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.
其它你可能感兴趣的问题