前言
Pandas数据结构
Pandas模块包含两种数据结构,分别是Series和DateFrame
Series类似于Numpy模块创建的一维数组,但Series对象不仅包括数据元素还包括数据元素对应的行标签
DataFrame对象是一种二维的数据结构对象,形式上类似于Excel表格
Python数据分析
python 数据分析分为几个阶段,数据预处理、数据处理与分析、输出数据
数据预处理
导入数据处理库
import numpy as np
import pandas as pd
读取Excel数据
pandas模块读取EXcel数据需要用pd.read_excel()
读取csv数据
pd.read_csv()
数据处理与分析
拼接数组
拼接数组的函数:np.concatenate((arr1, arr2), axis=0) # axis=0列方向拼接,1行方向拼接
注意:待合并的几个数组的形状shape(数组的行和列)必须相同
其他拼接:hstact()水平堆叠、vstact()垂直堆叠
拆分数组
数组的拆分就是将一个数组分割成多个数组,Python可以使用Numpy模块中的split()、hsplit和vsplit()函数实现
而数组的拆分方法分为平均拆分、分段拆分、横向拆分、纵向拆分四种
第一种方法需要使split()的第二个参数选定为指定要均分的份数
第二种方法需要将split()第二个参数设置为数组,数组内存放索引值
第三、第四种方法分别使用hsplit()和vsplit()函数,第二个参数指定拆分数组的个数
输出数据
shape查看行数和列数
import numpy as np
import pandas as pd
ndarray1 = np.array([1,2,3])
print(ndarray1.shape)
DataFrame1 = pd.DataFrame([[1,2,3],[12,33,44]])
print(DataFrame1.shape)
(3,)
(2, 3)
dtypes查看数据类型
import pandas as pd
df = pd.DataFrame({
'column1': [1, 2, 3],
'column2': ['apple', 'banana', 'cherry'],
'column3': [True, False, True]
})
# 查看每一列的数据类型
print(df.dtypes)
column1 int64
column2 object
column3 bool
dtype: object
注:其他属性可以通过help(ndarray1)和help(DataFrame1)查看,这里的ndarray1,DataFrame1分别为ndarray对象和DataFrame对象
df.head(n)
方法查看DataFrame的前n行记录
# 导入Pandas库
import pandas as pd
# 假设我们有一个CSV文件(假设数据已经存在于'example.csv'中)
df = pd.read_csv('example.csv')
# 使用df.head(n)查看前5行记录
n = 5
print(df.head(n))
# 或者直接查看前3行
print(df.head(3))
DataFrame.info()查看每一列的数据类型以及其他统计信息
import pandas as pd
# 假设有如下DataFrame
df = pd.DataFrame({
'column1': [1, 2, 3],
'column2': ['apple', 'banana', 'cherry'],
'column3': [True, False, True]
})
# 查看数据框的详细信息,包括每列的数据类型
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 column1 3 non-null int64
1 column2 3 non-null object
2 column3 3 non-null bool
dtypes: bool(1), int64(1), object(1)
memory usage: 192.0+ bytes
astype()修改列数据类型的函数
import pandas as pd
# 假设有一个DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['4', '5', '6']})
# 修改列A的数据类型为浮点数
df['A'] = df['A'].astype(float)
# 修改列B的数据类型为整数
df['B'] = df['B'].astype(int)
# 或者一次性修改多个列的数据类型
df[['A', 'B']] = df[['A', 'B']].astype(float) # 将A和B列都转换为浮点数
导入数据的前几行,与查看数据的前几行的区别
- “导入数据的前几行”侧重于数据读取阶段的轻量化预处理,有助于减少资源消耗,快速了解数据格式;
- “查看数据的前几行”则是在数据已经被加载到内存或数据结构中后,用于实时查看或展示数据集内容的行为。