接着上一篇写,仍然有部分任务跳过
任务一DateFrame和Series
自行查阅资料了解
以下内容来源于讯飞
Pandas中的DataFrame和Series是两种核心的数据结构,**它们用于数据处理和分析**。以下是关于这两种数据结构的详细介绍:
1. DataFrame:
- **定义**:DataFrame是一个表格型的数据结构,可以看作是一个Excel表格或SQL表。它由一组有序的列构成,这些列可以是不同的数据类型,如数值、字符串或布尔值。
- **索引**:DataFrame既有行索引也有列索引,这使得它在二维标签化数据方面非常灵活。
- **创建**:可以通过多种方式创建DataFrame,包括通过字典、通过另一个DataFrame、或者直接指定数据和列索引等方法来创建。
- **操作**:DataFrame支持各种操作,如取某一列、某几列、某行,以及更复杂的数据操作比如分组、合并、重塑等。2. **Series**:
- **定义**:Series类似于一维数组对象,它包含一组值和对应的索引。Series可以被视为带标签的一维数组,这些标签也被称为索引。
- **索引**:Series只有行索引,这意味着它是一维的,并且每个值都有一个与之关联的索引标签。
- **创建**:可以通过列表、字典等方式创建Series。当使用字典创建时,字典的键会成为索引,而值会成为Series中的数据。
- **性能**:Series在性能上类似于Numpy的ndarray,同时也提供了类似字典的访问方式,可以通过索引标签快速获取数据。总的来说,DataFrame适合处理表格形式的数据,而Series则更适合处理一维数据序列。两者都是建立在Numpy基础之上的,因此在性能上非常高效,是进行数据分析不可或缺的工具。在实际应用中,DataFrame和Series常常配合使用,以完成更为复杂的数据处理任务。
ps:我认为简单看看有点印象就行
练习
简单写一个关于二者的小例子
官方给的例子以及运行结果
#我们举的例子
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
'year': [2000, 2001, 2002, 2001, 2002, 2003],'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
example_2 = pd.DataFrame(data)
example_2
理解:创建三个数据框/“字典”
ps:这里和字典很像,但不是,可以理解成字典
举例:
s2 = pd.Series(list(range(1,8)))
s2
默认列名还有索引,值是range里的。
列名是1,索引是0开始。
import pandas as pd
# 创建Series
temperatures = pd.Series([25, 28, 30, 26, 24], index=['北京', '上海', '广州', '深圳', '杭州'])
print(temperatures)
任务二到六
删除指定列可以用pop,dwl,drop
输出指定列的值
思考题
简单来讲,一个通过标签(loc)一个通过位置(iloc)。
loc
是通过标签(label)进行索引,例如,df.loc[row_labels, col_labels]
。这里的row_labels
是行标签,col_labels
是列标签。
iloc
是通过位置(integer position)进行索引,例如,df.iloc[row_positions, col_positions]
。这里的row_positions
是行位置,col_positions
是列位置。具体来说,假设有一个DataFrame
df
,其行标签为 ['A', 'B', 'C'],列标签为 ['X', 'Y', 'Z'],如果你想选择第一行和第二列,你可以这样做:
- 使用
loc
:df.loc['A', 'Y']
- 使用
iloc
:df.iloc[0, 1]
midage_row_100 = midage.iloc[99][['Pclass', 'Sex']]
print(midage_row_100)midage_row_100 = midage.iloc[99][['Pclass', 'Sex']]
print(midage_row_100)
selected_rows = midage.loc[[99, 104, 107], ['Pclass', 'Name', 'Sex']] # 注意这里的索引与iloc不同,是直接使用标签索引
print(selected_rows)