Pandas read_csv() 与示例
在 Pandas 中导入 CSV
在 TensorFlow 教程中,您将使用成人数据集。它通常用于分类任务。它可在此 URL 中找到 https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
数据以 CSV 格式存储。此数据集包括八个分类变量:
该数据集包括8个分类变量:
- 工人阶级
- 教育
- 婚姻
- 占用
- 关系
- 种族
- 性别
- 祖国
以及6个连续变量:
- 年龄
- 风车
- 教育编号
- 资本收益
- 资本损失
- hours_week
Pandas read_csv() 方法
要导入 CSV 数据集,可以使用对象 pd.read_csv()。里面的基本参数是:
Pandas read_csv() 语法
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- 文件路径或缓冲区:包含数据的路径或 URL
- 九月=', ':定义要使用的分隔符
- `names=None`:为列命名。如果数据集有十列,则需要传递十个名称
- `index_col=无`:如果是,则第一列作为行索引
- `skipinitialspace=False`:跳过分隔符后的空格。
有关 read_csv() 的更多信息,请查看官方文档:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
Pandas read_csv() 示例
## Import csv import pandas as pd ## Define path data COLUMNS = ['age','workclass', 'fnlwgt', 'education', 'education_num', 'marital', 'occupation', 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss', 'hours_week', 'native_country', 'label'] PATH = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data" df_train = pd.read_csv(PATH, skipinitialspace=True, names = COLUMNS, index_col=False) df_train.shape
输出:
(32561, 15)
Pandas groupby() 方法
查看数据的一种简单方法是使用 groupby 方法。此方法可以帮助您按组汇总数据。以下是 groupby() 方法可用的方法列表:
- 计数:计数
- 分钟: 分钟
- 最大:最大
- 平均值:平均值
- 中位数:中位数
- 标准差:sdt
- 等。
在 groupby() 内部,您可以使用想要应用该方法的列。
让我们看一下成人数据集的单个分组。您将获得按收入类型(即高于 50k 或低于 50k)划分的所有连续变量的平均值:
df_train.groupby(['label']).mean()
标签 | 年龄 | 风车 | 教育编号 | 资本收益 | 资本损失 | hours_week |
---|---|---|---|---|---|---|
<= 50K | 36.783738 | 190340.86517 | 9.595065 | 148.752468 | 53.142921 | 38.840210 |
> 50K | 44.249841 | 188005.00000 | 11.611657 | 4006.142456 | 195.001530 | 45.473026 |
您可以按家庭类型获取最低年龄:
df_train.groupby(['label'])['age'].min() label <=50K 17 >50K 19 Name: age, dtype: int64
您还可以按多个列进行分组。例如,您可以根据家庭类型和婚姻状况获得最大资本收益。
df_train.groupby(['label', 'marital'])['capital_gain'].max() label marital <=50K Divorced 34095 Married-AF-spouse 2653 Married-civ-spouse 41310 Married-spouse-absent 6849 Never-married 34095 Separated 7443 Widowed 6849 >50K Divorced 99999 Married-AF-spouse 7298 Married-civ-spouse 99999 Married-spouse-absent 99999 Never-married 99999 Separated 99999 Widowed 99999 Name: capital_gain, dtype: int64
您可以在 groupby 之后创建一个图。一种方法是在分组后使用图。
为了创建更出色的图,您将在 mean() 之后使用 unstack(),以便拥有相同的多级索引,或者将收入低于 50k 和高于 50k 的值连接起来。在这种情况下,图将有两组,而不是 14 组(2*7)。
如果你使用 Jupyter 笔记本,确保添加 %matplotlib inline,否则不会显示任何图
%matplotlib inline df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack() df_plot
结语
- 要导入 CSV 数据集 熊猫,您可以使用对象pd.read_csv()。
- groupby() 方法可以帮助您按组汇总数据。
- 您还可以按多个列进行分组。例如,您可以根据家庭类型和婚姻状况获得最大资本收益。