pandas + numpy +matplotlib
3. pandas的使用
## pandas和numpy的基本组成类似,都只有一维数组(Series)和二位数组(DataFrame)
## 理解这一点,就好运用了
## 1. 选取单列时,就是一维Series的操作
## 2. 选取多列时,就是二维DataFrame的操作
3.0 数据创建
3.1 查
## 使用[]查询
data['policy_id'] # 返回Series,一列
data[['policy_id']] # DataFrame 只有一列
data[['policy_id','age']] # DataFrame 有多列
## 使用iloc查询,iloc查询使用的行、列索引(整数)
row = data.iloc[1,1]
rows = data.iloc[0:2,0:-1] ## 0:2 代表行,从0行开始,2行截至;0:-1 代表列,0行开始,倒数第一行截至
rows = data.iloc[0:2] ## 后面不写列,默认选中全部列
rows = data.iloc[:,0:2] ## 前面加逗号,:代表全部行
## 使用loc查询,loc查询使用的行、列的标签(字符串)
row = data.iloc[1,'age']
rows = data.loc[0:2,['age','policy_id']] ##loc 只能使用标签,不能使用索引
rows = data.loc[0:2] ## 同样: 后面不带,默认选中全部列
rows = data.loc[:,['age','policy_id']] ## 同样:前面加入:,默认选中全部行
## 使用.列名选中一列
x_train.Credit_Product # 返回Series
## 条件查询
conditonQuery = data[(data['age'] > 30) & (data['customer_months'] > 200)] ## 最外层[]代表条件
3.2 增
## 使用loc或者iloc,选中位置,直接赋值
data.loc[:,['add']] = 'add' ## 新增一列,赋值为add
## loc新增
new_row = {'A': 10, 'B': 11, 'C': 12}
df.loc[3] = new_row
## apeend新增
new_row = pd.Series({'A': 10, 'B': 11, 'C': 12})
df = df.append(new_row, ignore_index=True)
3.3 改
## 条件查询,并修改
conditonQuery = data[(data['age'] > 30) & (data['customer_months'] > 200)] ## 最外层[]代表条件
## 使用loc或者iloc,选中位置,直接赋值
conditonQuery.loc[:,'age'] = 10 ## fuz
3.2 删
## 1. 删除一列
## 1.1 使用 del 关键字
del df['B']
## 1.2 使用trop属性
df_new = df.drop('C', axis=1)
## 1. 删除一行
## 1.1 使用trop属性
df.drop(1, inplace=True) # 删除索引为1的行
## 1.2 使用 .loc[] 或 .iloc[] 配合布尔索引来删除行
df = df.loc[df['A'] != 2]
## 1.3 使用 .drop() 方法配合条件表达式
df = df.drop(df[df['A'] == 2].index)
3.5 分析
## group by 统计次数, 使用Series的value_counts()
data['age'].value_counts()
## 使用pandas.cut对数据进行分箱
## 参考:https://blog.csdn.net/heianduck/article/details/124409593
binning = pd.cut(df1['Age'], ages, right=False)
## pandas的dataframe一行转换为series
s = test_Base.head(1).stack()
3.6 迭代器
test_df = pd.read_excel("../AA_data/sql生成/sql_seed_result.xlsx")
for index, row in test_df.iterrows():
input_value = row['question']
print(index,input_value)
4. numpy的使用
4.1 查
## 条件筛选
y_train_test_pred[y_train_test_pred > 0.5] ## 只有一列
4.2 改
5. matplotlib画图
5.1 统计学中的图形
在数据挖掘中,EDA(探索性数据分析)环节是一个至关重要的步骤,它涉及对数据的初步研究,以便更好地理解其特殊性质,从而有助于选择合适的数据预处理和数据分析技术。在EDA环节中,图形化展示数据是一种直观且有效的探索方法。以下是一些在EDA环节常用的图形:
- 散点图:用于展示两个变量之间的关系,可以直观地看出变量之间是否存在线性关系或其他关联模式。
- 直方图:用于展示单个变量的分布情况,通过直方图可以观察到数据的集中趋势、分散程度以及可能存在的异常值。
- 箱线图:一种用于展示数据分布情况的图形,通过箱线图可以迅速了解数据的最大值、最小值、中位数、四分位数等信息。
- 饼图:用于展示分类数据的分布情况,有助于了解各类别在总体中所占的比例。
- 热力图:用于展示多个变量之间的关系,通过颜色的深浅来表示变量之间的关联程度,有助于发现变量之间的潜在模式。
- 时间序列图:对于时间序列数据,时间序列图可以直观地展示数据随时间的变化趋势,有助于发现周期性、季节性等模式。
除了上述图形外,根据数据的特性和分析需求,还可以使用其他类型的图形,如折线图、面积图、树状图等。这些图形可以单独使用,也可以结合使用,以便更全面地探索数据的结构和规律。
在EDA环节中,选择合适的图形进行数据展示需要根据数据的类型、分布以及分析目标来确定。通过图形化展示数据,可以更直观地理解数据的特征,为后续的数据分析和建模提供有力的支持。