【Pandas DataFrame快速上手】:行和列求和的简单方法
发布时间: 2024-12-16 10:21:20 阅读量: 1 订阅数: 4
Pandas DataFrame数据的更改、插入新增的列和行的方法
![【Pandas DataFrame快速上手】:行和列求和的简单方法](https://c8j9w8r3.rocketcdn.me/wp-content/uploads/2021/01/python-pandas-drop.jpg)
参考资源链接:[python中pandas.DataFrame对行与列求和及添加新行与列示例](https://wenku.csdn.net/doc/cyhdalx4m0?spm=1055.2635.3001.10343)
# 1. Pandas DataFrame基础
在数据科学和机器学习的世界里,Pandas是一个强大的Python库,它提供了一系列数据结构和数据分析工具。Pandas DataFrame是Pandas库中一个核心的数据结构,它是一个二维的、大小可变的、潜在异质的表格数据结构,带有标记的轴(行和列)。它在数据分析中扮演着极其重要的角色,因为能够以表格形式存储数据,这使得数据处理和操作变得非常直观和高效。
本章节将简要介绍DataFrame的基础知识,为后续章节中更深入的数据操作和分析打下坚实基础。我们将首先了解DataFrame的基本概念,包括其结构、如何创建、以及它与NumPy数组的关系。
接下来,我们将探讨如何利用Pandas进行高效的数据加载和数据清洗,这通常是数据分析流程中的第一步。此外,我们还将通过实例演示如何从零开始创建DataFrame,并探讨其导入和导出数据的能力,为后续的数据探索和分析活动奠定基础。
# 2. Pandas DataFrame的数据操作
## 2.1 DataFrame的创建和导入
### 2.1.1 从Python列表创建DataFrame
在Pandas库中,创建一个新的`DataFrame`对象非常简单,尤其是当你已经有了一个嵌套列表或字典列表时。下面是一个基本的例子,展示了如何从Python列表创建一个`DataFrame`。
```python
import pandas as pd
# Python列表
data = [
['Alice', 24],
['Bob', 19],
['Charlie', 30]
]
# 创建DataFrame
df = pd.DataFrame(data, columns=['Name', 'Age'])
print(df)
```
在上述代码中,`data`变量包含了一个嵌套列表,其中每个子列表代表一条记录,每个记录包含两个字段:名字和年龄。参数`columns`是可选的,用来为数据列命名。如果没有提供列名,Pandas会默认使用整数索引作为列名。
**执行逻辑说明:**
- 首先,`import pandas as pd`导入Pandas库,并为它设置了一个别名`pd`,这是一种常见的做法,可以简化代码。
- 接着,创建了一个名为`data`的列表,其中包含三个子列表,分别代表三个人的姓名和年龄。
- 使用`pd.DataFrame()`函数创建了一个新的`DataFrame`对象,并传入了数据和列名。
- 最后,打印出这个`DataFrame`。
**参数说明:**
- `data`:包含数据的列表,每个子列表是一个记录。
- `columns`:一个可选参数,可以用来给DataFrame的列指定名字,如果未提供,将默认使用数字索引。
### 2.1.2 从CSV文件导入DataFrame
使用Pandas从CSV文件导入数据到`DataFrame`是数据处理中的常见任务。CSV文件是一种常用的文本格式,其中数据通常以逗号分隔。
```python
import pandas as pd
# 从CSV文件创建DataFrame
df = pd.read_csv('data.csv')
print(df.head()) # 打印前5行数据
```
在上面的代码示例中,`pd.read_csv()`函数用于从一个名为`data.csv`的CSV文件读取数据,并将其作为DataFrame对象返回。`read_csv`是一个非常灵活的函数,具有多种参数来处理各种复杂的CSV格式。
**执行逻辑说明:**
- 使用`import pandas as pd`语句导入Pandas库。
- 使用`pd.read_csv()`函数从`data.csv`文件读取数据。默认情况下,该函数假设第一行包含列名,字段由逗号分隔。
- 使用`df.head()`打印DataFrame的前5行,以检查数据是否正确导入。
**参数说明:**
- `filename`:要读取的CSV文件的路径或文件名。
- `sep` 或 `delimiter`:字段分隔符,默认为逗号(`,`),也可以是其他字符,如制表符(`\t`)。
- `header`:指定用作列名的行,默认为0(第一行),也可以设置为`None`,在这种情况下,将生成数字索引列名。
- `usecols`:一个可选的参数,可以指定一个列名列表,或者一个整数列表,或者一个函数,用于从文件中选择需要的列。
## 2.2 DataFrame的行和列操作
### 2.2.1 索引和选择数据
在Pandas中,选择数据的方法多种多样,可以基于位置或标签选择数据。基本的索引和选择方法通常涉及到`.loc`和`.iloc`属性。
```python
import pandas as pd
# 假设df是已经导入的DataFrame
# 使用.loc选择标签
row_label = df.loc[0, 'Name'] # 选择第一行的Name列
# 使用.iloc选择位置
row_position = df.iloc[0, 0] # 选择第一行的第一列
print(row_label, row_position)
```
在这个例子中,`.loc`属性用于基于标签选择数据。它的第一个参数是行标签,第二个参数是列名。而`.iloc`属性用于基于位置的索引。它的参数是行和列的位置索引(从0开始计数)。
**执行逻辑说明:**
- 假设`df`已经是一个有效的DataFrame对象,从之前导入数据的例子中创建。
- 使用`.loc`方法选择第一行中的`Name`列。
- 使用`.iloc`方法选择第一行的第一列(如果列也被标记了标签,那么这个方法就不需要使用,因为`.loc`已经可以处理标签)。
- 打印出通过这两种方法选中的数据。
**参数说明:**
- `.loc`:基于标签的选择方法,它的参数是一个行标签和一个列标签。
- `.iloc`:基于整数位置的选择方法,其参数是一个行位置索引和一个列位置索引。
### 2.2.2 添加和删除行和列
在数据处理过程中,经常需要向DataFrame中添加或删除数据。Pandas提供了简洁的方法来完成这些操作。
```python
import pandas as pd
# 假设df是已经导入的DataFrame
# 添加列
df['New Column'] = None # 添加一个新列,并赋值为None
# 删除列
df = df.drop('New Column', axis=1) # 删除刚才添加的列
# 添加行
new_row = {'Name': 'Dave', 'Age': 34}
df = df.append(new_row, ignore_index=True) # 添加新行并重置索引
print(df)
```
在上述代码中,我们演示了如何添加和删除列,以及如何添加新的行到DataFrame。添加列很简单,只需要通过新列名添加数据即可。删除列则使用`drop()`方法,指定要删除的列名和`axis=1`表示我们是在操作列(默认是`axis=0`,即操作行)。添加行使用`append()`方法,并且可以指定`ignore_index=True`来忽略原有的索引,并重新设置。
**执行逻辑说明:**
- 首先,假设`df`已经是一个有效的DataFrame对象。
- 我们添加了一个新列`New Column`。
- 接着,删除了刚才添加的列。
- 然后,添加了一个新行`new_row`。
- 最后,打印出修改后的DataFrame。
**参数说明:**
- `new_column_name`:要添加的新列名。
- `axis`:指定操作的轴向。`axis=1`表示操作列,`axis=0`表示操作行。
- `ignore_index`:在`append()`方法中,如果设置为`True`,则忽略原始DataFrame的索引,并创建新的连续索引。
### 2.2.3 数据清洗技巧
在处理真实世界的复杂数据时,数据清洗是一项至关重要的工作。Pandas提供了许多内置函数来帮助我们处理缺失值、重复数据等问题。
```python
import pandas as pd
# 假设df是已经导入的DataFrame
# 检测并处理缺失值
df = df.dropna() # 删除包含任何缺失值的行
# 检测并删除重复数据
df = df.drop_duplicates() # 删除重复行
# 填充缺失值
df.fillna(value='FILL VALUE', inplace=True) # 用指定值填充缺失值
print(df)
```
上述代码中展示了如何进行基本的数据清洗操作。`dropna()`用于删除包含缺失值的行,`drop_duplicates()`用于删除重复的行,而`fillna()`则用于用指定的值填充缺失值。
**执行逻辑说明:**
- 假定`df`已经是一个有效的DataFrame对象。
- 使用`dropna()`方法移除所有包含缺失值的行。
- 使用`drop_duplicates()`方法移除所有重复的行。
- 使用`fillna()`方法用给定的值填充DataFrame中的所有缺失值。
**参数说明:**
- `dropna()`:用于删除含有缺失值的行或列,可以通过设置`how`参数为`'all'`来仅删除完全由缺失值组成的行或列。
- `drop_duplicates()`:此方法默认删除所有重复的行,但也可以通过设置`subset`参数来指定只考虑特定列的重复情况。
- `fillna(value)`:此方法用于填充缺失值,`value`参数是你希望填充的值,`inplace=True`表示更改将直接应用于原DataFrame,否则需要接收返回值。
## 2.3 DataFrame的数据汇总
### 2.3.1 基本统计描述
Pandas提供了一系列函数来对数据进行基本统计描述,如求最大值、最小值、平均值等。
```python
import pandas as pd
# 假设df是已经导入的DataFrame
# 基本统计描述
stat_description = df.describe()
print(stat_description)
```
在上述代码中,`df.describe()`会为数据集中的数值列计算一系列的统计描述,包括计数、平均值、标准差、最小值、25%分位数、中位数、75%分位数和最大值。
**执行逻辑说明:**
- 假定`df`已经是一个有效的DataFr
0
0