1. DataFrame基本特性
二维、大小可变、可异构的表格数据。
2. DataFrame构造方法
pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)
参数说明:
参数名 | 说明 |
data | ndarray (structured or homogeneous), Iterable, dict, or DataFrame 选填,不填则为空DataFrame对象。 |
index | 行索引,对象为一维数组 选填,不填默认RangeIndex。 |
columns | 列标签,对象为一维数组 选填,不填默认RangeIndex。 |
dtype | 指定数据类型,默认None。若不为None则强制数据类型。只允许使用单一数据类型。 |
copy | bool 或 None,默认 None。 False表示在创建DataFrame时不复制数据,而是使用数据的引用。如果设置为True,将创建一个新的副本。 |
关于copy的补充:
- 对于字典数据,None的默认行为相当于copy=True。
- 对于DataFrame或二维数组,None的默认行为相当于copy=False。
- 对于包含一个或多个Series的字典(可能具有不同的dtype),copy=False。
3. DataFrame构造示例
3.1 使用普通字典构造DataFrame
import pandas as pd
import numpy as np
data = {
'math': np.random.randint(60, 100, size=3),
'age': [12, 15, 16], # 列表可替换为Series、numpy ndarray
}
index = pd.Series(['Jesse', 'Bob', 'Jerry'])
df = pd.DataFrame(data, index=index)
print(f'DataFrame数据结构为:\n{df} \n该对象数据类型为:\n{df.dtypes}')
# 若想指定异构数据的dtype,可用Series或numpy进行指定,再构造DataFrame对象
df = pd.DataFrame(data, index=index, dtype='int8')
print(f'指定数据类型后:\nDataFrame数据结构为:\n{df} \n该对象数据类型为:\n{df.dtypes}')
# 终端输出
DataFrame数据结构为:
math age
Jesse 62 12
Bob 96 15
Jerry 77 16
该对象数据类型为:
math int32
age int64
dtype: object
指定数据类型后:
DataFrame数据结构为:
math age
Jesse 62 12
Bob 96 15
Jerry 77 16
该对象数据类型为:
math int8
age int8
dtype: object
3.2 读取CSV文件构建DataFrame
pandas.read_csv(filepath_or_buffer, *, sep=_NoDefault.no_default,
delimiter=None, header='infer', names=_NoDefault.no_default,
index_col=None, usecols=None, dtype=None, engine=None,
converters=None, true_values=None, false_values=None,
skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None,
na_values=None, keep_default_na=True, na_filter=True,
verbose=_NoDefault.no_default, skip_blank_lines=True,
parse_dates=None, infer_datetime_format=_NoDefault.no_default,
keep_date_col=_NoDefault.no_default, date_parser=_NoDefault.no_default,
date_format=None, dayfirst=False, cache_dates=True, iterator=False,
chunksize=None, compression='infer', thousands=None, decimal='.',
lineterminator=None, quotechar='"', quoting=0, doublequote=True,
escapechar=None, comment=None, encoding=None, encoding_errors='strict',
dialect=None, on_bad_lines='error', delim_whitespace=_NoDefault.no_default,
low_memory=True, memory_map=False, float_precision=None, storage_options=None,
dtype_backend=_NoDefault.no_default)
参数说明(这里暂时只解释filepath_or_buffer参数):
参数名 | 说明 |
filepath_or_buffer | 文件路径或类文件对象。 类文件对象,我们指的是具有read()方法的对象。 |