In [1]: import pandas as pd 本教程使用的数据: 泰坦尼克号数据 本教程使用泰坦尼克号数据集,存储为 CSV。数据由以下数据列组成: PassengerId:每位乘客的 ID。 Survived:表示乘客是否幸存。0对于是和1否。 Pclass:3 个票价类别之一: Class 1、 Class2和 Class 3。 姓名:乘客姓名。 性别:乘客的性别。 年龄:乘客的年龄(岁)。 SibSp:船上兄弟姐妹或配偶的数量。 Parch:船上父母或儿童的数量。 票号:旅客的票号。 票价:表示票价。 客舱:乘客的客舱编号。 登船:登船港口。 至原始数据 如何读写表格数据?# 我想分析泰坦尼克号乘客数据(以 CSV 文件形式提供)。 In [2]: titanic = pd.read_csv("data/titanic.csv") pandas 提供了read_csv()将存储为 csv 文件的数据读取到 pandas 中的功能DataFrame。 pandas 支持许多不同的文件格式或开箱即用的数据源(csv、excel、sql、json、parquet...),每个文件格式或数据源都带有前缀read_*. 确保在读入数据后始终检查数据。显示 a 时DataFrame,默认显示前 5 行和后 5 行: In [3]: titanic Out[3]: PassengerId Survived Pclass ... Fare Cabin Embarked 0 1 0 3 ... 7.2500 NaN S 1 2 1 1 ... 71.2833 C85 C 2 3 1 3 ... 7.9250 NaN S 3 4 1 1 ... 53.1000 C123 S 4 5 0 3 ... 8.0500 NaN S .. ... ... ... ... ... ... ... 886 887 0 2 ... 13.0000 NaN S 887 888 1 1 ... 30.0000 B42 S 888 889 0 3 ... 23.4500 NaN S 889 890 1 1 ... 30.0000 C148 C 890 891 0 3 ... 7.7500 NaN Q [891 rows x 12 columns] 我想查看 pandas DataFrame 的前 8 行。 In [4]: titanic.head(8) Out[4]: PassengerId Survived Pclass ... Fare Cabin Embarked 0 1 0 3 ... 7.2500 NaN S 1 2 1 1 ... 71.2833 C85 C 2 3 1 3 ... 7.9250 NaN S 3 4 1 1 ... 53.1000 C123 S 4 5 0 3 ... 8.0500 NaN S 5 6 0 3 ... 8.4583 NaN Q 6 7 0 1 ... 51.8625 E46 S 7 8 0 3 ... 21.0750 NaN S [8 rows x 12 columns] 要查看 a 的前 N 行DataFrame,请使用该head()方法并以所需的行数(在本例中为 8)作为参数。 笔记 对最后 N 行感兴趣吗? pandas也提供了一种 tail()方法。例如,titanic.tail(10)将返回 DataFrame 的最后 10 行。 可以通过请求 pandas 属性来检查 pandas 如何解释每个列数据类型dtypes: In [5]: titanic.dtypes Out[5]: PassengerId int64 Survived int64 Pclass int64 Name object Sex object Age float64 SibSp int64 Parch int64 Ticket object Fare float64 Cabin object Embarked object dtype: object 对于每一列,都会列出所使用的数据类型。其中的数据类型DataFrame为整数 ( int64)、浮点数 ( float64) 和字符串 ( object)。 笔记 当询问 时dtypes,不使用括号! 是 a和dtypes的属性。 a或的属性不需要括号。属性代表/的特征,而方法(需要括号)则使用 /执行某些操作,如第一个教程中介绍的那样。DataFrameSeriesDataFrameSeriesDataFrameSeriesDataFrameSeries 我的同事要求以电子表格形式提供泰坦尼克号数据。 In [6]: titanic.to_excel("titanic.xlsx", sheet_name="passengers", index=False) 函数read_*用于将数据读取到 pandas,而 to_*方法则用于存储数据。该to_excel()方法将数据存储为 Excel 文件。在此示例中,sheet_name名为“passengers”而不是默认的“Sheet1”。通过设置 index=False行索引标签不会保存在电子表格中。 等效的读取函数read_excel()会将数据重新加载到 DataFrame: In [7]: titanic = pd.read_excel("titanic.xlsx", sheet_name="passengers") In [8]: titanic.head() Out[8]: PassengerId Survived Pclass ... Fare Cabin Embarked 0 1 0 3 ... 7.2500 NaN S 1 2 1 1 ... 71.2833 C85 C 2 3 1 3 ... 7.9250 NaN S 3 4 1 1 ... 53.1000 C123 S 4 5 0 3 ... 8.0500 NaN S [5 rows x 12 columns] 我对以下内容的技术摘要感兴趣DataFrame In [9]: titanic.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 891 entries, 0 to 890 Data columns (total 12 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 PassengerId 891 non-null int64 1 Survived 891 non-null int64 2 Pclass 891 non-null int64 3 Name 891 non-null object 4 Sex 891 non-null object 5 Age 714 non-null float64 6 SibSp 891 non-null int64 7 Parch 891 non-null int64 8 Ticket 891 non-null object 9 Fare 891 non-null float64 10 Cabin 204 non-null object 11 Embarked 889 non-null object dtypes: float64(2), int64(5), object(5) memory usage: 83.7+ KB 该方法info()提供了有关 a 的技术信息 DataFrame,因此让我们更详细地解释输出: 它确实是一个DataFrame. 有 891 个条目,即 891 行。 每行都有一个行标签(也称为index),其值范围为 0 到 890。 该表有 12 列。大多数列的每一行都有一个值(所有 891 个值都是non-null)。有些列确实存在缺失值且值少于 891 个non-null。 列Name、Sex、Cabin和Embarked由文本数据(字符串,又名object)组成。其他列是数值数据,其中一些是整数(又名integer),其他列是实数(又名float)。 不同列中的数据类型(字符、整数……)通过列出dtypes. 还提供了用于保存 DataFrame 的大致 RAM 量。 记住 函数支持从许多不同的文件格式或数据源将数据输入 pandas read_*。 从 pandas 导出数据可以通过不同的 to_*方法来实现。 head//方法和属性方便初次检查tail。infodtypes 转至用户指南有关 pandas 的输入和输出可能性的完整概述,请参阅有关读取器和写入器功能的用户指南部分。