无需 CSV 模块即可读取 CSV 的Python程序
CSV(逗号分隔值)是一种简单的文件格式,用于存储表格数据,例如电子表格或数据库。 CSV 文件以纯文本形式存储表格数据(数字和文本)。文件的每一行都是一个数据记录。每条记录由一个或多个字段组成,以逗号分隔。使用逗号作为字段分隔符是此文件格式名称的来源。
可以使用名为Pandas
的Python库读取 CSV 文件。该库可用于读取多种类型的文件,包括 CSV 文件。我们使用库函数read_csv(input) 来读取 CSV 文件。您要读取的 CSV 文件的 URL/路径作为函数的输入给出。
句法:
pd.read_csv(filepath_or_buffer, sep=’, ‘, delimiter=None, header=’infer’, names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression=’infer’, thousands=None, decimal=b’.’, lineterminator=None, quotechar='”‘, quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)
并非所有这些都很重要,但记住这些实际上可以节省自己执行相同功能的时间。通过在 jupyter notebook 中按 shift + tab 可以查看任何函数的参数。下面给出了有用的和它们的用法:
Parameter | Use |
---|---|
filepath_or_buffer | URL or Dir location of file |
sep | Stands for seperator, default is ‘, ‘ as in csv(comma seperated values) |
index_col | Makes passed column as index instead of 0, 1, 2, 3…r |
header | Makes passed row/s[int/int list] as header |
use_cols | Only uses the passed col[string list] to make data frame |
squeeze | If true and only one column is passed, returns pandas series |
skiprows | Skips passed rows in new data frame |
如果给定路径无效,即给定路径中不存在文件,则该函数给出FileNotFoundError
。但是如果函数成功读取文件,那么它会返回一个类型为class pandas.core.frame.DataFrame
的对象。然后可以使用函数dataframe.to_numpy()
将返回的数据帧(对象)转换为 numpy 数组,此函数与 pandas 一起并返回数据帧的 numpy 数组表示。然后我们可以使用arr
作为一个 numpy 数组来执行所需的操作。
例子:
# PYthon program to read
# CSV file without csv module
import pandas as pd
#reading a csv file with pandas
data_frame = pd.read_csv("pokemon.csv")
#give the datatype of a pandas
# object
print(type(data_frame))
#this function gives us a
# brief view of the data.
print(data_frame.head)
#converting pandas dataframe
# to a numpy array.
arr = data_frame.to_numpy()
print(arr)
输出: