目录
- pandas
- matplotlib
- numpy
pandas
读取csv,并将第一行作为列名
dataframe = pd.read_csv('./data.csv',header=0)
读取csv,并将第一列作为行名
dataframe = pd.read_csv('./data.csv',index_col=0) #为1时将第二列指定为行名
读取csv,以第一列作为列名,以第一行作为行名
dataframe = pd.read_csv('./data.csv',index_col=0,header=0)
读取csv 指定列名,并且第一行不作为列名
dataframe = pd.read_csv('./weather.csv', header=None,names=['data','hour','temperature'])
创建dataframe ,指定列名和行名
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'], columns=['A', 'B', 'C'])
多个dataframe 横向拼接
pd.concat([df1,df2],axis=1)
删除一列或者多列
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 删除列'B'
df = df.drop('B', axis=1)
#删除多列
df = df.drop(['A','B'], axis=1)
对某一列的所有元素执行相同的操作
df["category"].apply(lamda x:x.split("=")[0])
类别转成数字
df['Product'] = df['Product'].astype('category').cat.codes
one_hot编码
data = {'category': ['A', 'B', 'C', 'A', 'B']}
df = pd.DataFrame(data)
# 对'category'列进行One-Hot编码
df_encoded = pd.get_dummies(df, columns=['category'], prefix='category')
#prefix='category'用于给生成的新列添加前缀以区分原始列
‘’‘
category_A category_B category_C
0 True False False
1 False True False
2 False False True
3 True False False
4 False True False
’‘’
ndarray转成Dataframe
import pandas as pd
# 创建一个指定行名的DataFrame
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'], columns=['A', 'B', 'C'])
字典转dataframe
data = {
'A': [1, 2, 3],
'B': ['a', 'b', 'c'],
'C': [True, False, True]
}
# 将字典转换为DataFrame
df = pd.DataFrame(data)
对某一列或者某几列进行数据类型的修改
# 创建一个示例DataFrame
data = {'col1': [1, 2, 3, 4], 'col2': ['A', 'B', 'C', 'D']}
df = pd.DataFrame(data)
# 将'col1'列的数据类型从整数修改为浮点数
df['col1'] = df['col1','col2'].astype(float)
df.dropna()获取df的行名和列名
df.columns
df.index
pandas其他常用操作matplotlib
画布与坐标轴的关系
图像显示
plt.imshow(image, cmap='gray')
图像保存
plt.savefig('my_plot.png',dpi=700)
子图绘制
plt.subplot()和plt.subplots()都是在matplotlib中用于创建子图的函数,但它们有一些不同之处。
plt.subplot()用法:
plt.subplot()允许在单个图形中创建多个子图,并通过指定行数、列数和子图索引来确定每个子图的位置。
示例:plt.subplot(2, 2, 1)表示将当前图形分为2行2列,当前子图的位置是第1个。plt.subplots()用法:
plt.subplots()创建一个新的Figure对象,并返回一个包含所有子图的Axes对象数组。可以通过索引访问特定子图。
示例:fig, axs = plt.subplots(2,2)会创建一个2x2的子图网格,并返回一个Figure对象fig和包含4个子图Axes对象的数组axs。 主要区别总结如下:
plt.subplot()适合用于创建少量子图并手动控制每个子图的位置。
plt.subplots()适合用于创建大量子图并自动管理它们的位置,可以更方便地对子图进行整体操作。
plt.subplot(2, 2, 1)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title('Plot 1')
# 指定第2个子图
plt.subplot(2, 2, 2)
plt.plot([1, 2, 3, 4], [1, 8, 27, 64])
plt.title('Plot 2')
# 指定第3个子图
plt.subplot(2, 2, 3)
plt.plot([1, 2, 3, 4], [1, 10, 100, 1000])
plt.title('Plot 3')
# 指定第4个子图
plt.subplot(2, 2, 4)
plt.plot([1, 2, 3, 4], [1, 2, 3, 4])
plt.title('Plot 4')
# 创建一个2x2的子图布局
fig, axs = plt.subplots(2, 2)
# 在每个子图中绘制内容
axs[0, 0].plot([1, 2, 3, 4], [1, 4, 9, 16])
axs[0, 0].set_title('Plot 1')
axs[0, 1].plot([1, 2, 3, 4], [1, 8, 27, 64])
axs[0, 1].set_title('Plot 2')
axs[1, 0].plot([1, 2, 3, 4], [1, 10, 100, 1000])
axs[1, 0].set_title('Plot 3')
axs[1, 1].plot([1, 2, 3, 4], [1, 2, 3, 4])
axs[1, 1].set_title('Plot 4')
# 显示子图
plt.show()
调整子图间的水平间距和垂直间距
plt.subplots_adjust(wspace=0.5, hspace=0.5) # 调整水平和垂直间距
设置坐标范围
plt.xlim(0, 6) # 设置x轴范围为0到6
plt.ylim(0, 30) # 设置y轴范围为0到30
设置坐标的刻度
plt.xticks([1, 2, 3, 4, 5], ['A', 'B', 'C', 'D', 'E']) # 设置x轴刻度位置和标签
plt.yticks([0, 5, 10, 15, 20, 25], ['0', '5', '10', '15', '20', '25']) # 设置y轴刻度位置和标签