本文为随手笔记
以下的数据都是dataframe
导入
import pandas as pd
创建对象
字典创建
data={'apple':[1,2,3],'orange':[4,5,6],'banana':[7,8,9]}
result=pd.DataFrame(data)
列表
data=[[1,2,3],[4,5,6],[7,8,9]]
result=pd.DataFrame(data)
创建出来是一列一列的
apple orange banana
0 1 4 7
1 2 5 8
2 3 6 9
|
|
这个就是index
读取文件
pd.read_csv("path路径")
pd.read_excel("path路径")
pd.read_json("path路径")
数据的标题(第一行)
data.columns
数据的索引(index)(第一列)
data.index
数据的内容
data.values
数据访问
列
1 data.apple
2 data['apple']
行
单行:data[0] <----这个好像是错的(待考究)
某几行 :data[0:3]
csv读取某行:data.iloc[0],下标
某行某列的
这个是用标签来找
data.loc[row_label, column_label] 行 列
这个是用下标来找
data.iloc[row_position, column_position] 行 列
两个代码,如果列不写就是一整行
删除
data=data.drop('列名',axis=0(行)/1(列),inplace=False/True(是否替代))
删除含有空数据的行或者列,方式:全部
data=data.dropna(axis=0(行)/1(列),how='any')
data=data.drop_duplicates(keep='first') #删除重复的行,并且只保留第一个数据
设置index
data=data.set_index('列名')
更换标签
data.columns=new_columns
绘图功能
这种是直接调用方法的
import pandas as pd
from matplotlib.plot as plt
#用data数据画折线图
data.plot(
kind='line',
title='广东省气象数据',
xlabel='月份',
grid=True,
legend=True,
color='r'
)
类型,
标题,
x轴标签,
网格,
图例,
颜色
plt.show()
实例化的
figure=data.plot(kind='kine',marker='o',color='r',)
figure.set_xlabel('x轴标签')
figure.set_ylabel('y轴标签')
figure.set_title('标题')
figure.legned()#显示图例
figure.show()#绘图
折线图
pic = data.plot(kind='line',
x='月份',
y=['温度', '湿度'],
linewidth=3,
marker='o',
markersize=5,
color=['#ffb3d9', '#b3d9ff'],
title='广东省2024年1-12月气象数据',
xlabel='月份',
ylabel='数值',
grid=True,
figsize=(10, 6),
rot=0,
legend=True)
pic.legend(loc='best')
可以设置
'best':自动选择最佳位置(默认值)。
'upper right':右上角。
'upper left':左上角。
'lower left':左下角。
'lower right':右下角。
'right':右侧。
'center left':左侧中心。
'center right':右侧中心。
'lower center':底部中心。
'upper center':顶部中心。
'center':图形中心。
pic.legend(loc=(0.9,0.9))#这个是设置具体坐标,坐标(0,0)是左下角,(1,1)是右上角
"""
x= x轴的数据
y= y轴的数据
折线图的宽度3
标记:每个数据点用圆形标记表示
标记的大小5
颜色设置
标题:
x轴的标签
y轴的标签
网格:显示
图形大小:宽 10 英寸,高 6 英寸。
图例:显示"""
柱状图
pic = data.plot(
kind='bar',
x='类别',
y='数值',
color=['#ffb3d9', '#ffcc00', '#b3d9ff', '#ff9999'],
title='我的条形图',
xlabel='类别',
ylabel='数值',
grid=True,
legend=True,
figsize=(10, 6),
rot=45,
stacked=False,
alpha=0.8,
edgecolor='black',
linewidth=1)
x轴标签:类别
y轴标签:数值
条形颜色:分别为粉色、黄色、浅蓝色和浅红色
标题:我的条形图
网格:显示
图例:显示
图形大小:宽 10 英寸,高 6 英寸
x轴标签旋转:45 度
条形透明度:0.8
条形边缘颜色:黑色
条形边缘宽度:1
饼图
data.pie(
data_value1,
labels=data3.index,
autopct='%1.1f%%',
startangle=140,
colors=custom_colors
)
饼图数据,
饼图数据标签,
显示的小数,
绘制起点的度数,
颜色
画两个饼图
import matplotlib.pyplot as plt
# 示例数据
data_value1 = [215, 130, 245, 210]
labels1 = ['苹果', '香蕉', '樱桃', '橙子']
custom_colors1 = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99']
data_value2 = [150, 100, 120, 80]
labels2 = ['草莓', '葡萄', '芒果', '西瓜']
custom_colors2 = ['#ff6666', '#6666ff', '#66ff66', '#ffff66']
# 创建图形和子图
fig, axes = plt.subplots(
nrows=1, --------->一行
ncols=2, --------->两列(也就是两个子图)
figsize=(16, 8))-->图的大小
# 在第一个子图上绘制饼图
axes[0].pie(data_value1, --------->数据
labels=labels1, -------->数据的标签
autopct='%1.1f%%', ----->显示的小数位数
startangle=140, -------->画图的起点,逆时针140度
colors=custom_colors1)-->设置颜色
axes[0].set_title('水果销售占比1')--->设置标题
# 在第二个子图上绘制饼图
axes[1].pie(data_value2,
labels=labels2,
autopct='%1.1f%%',
startangle=90,
colors=custom_colors2)
axes[1].set_title('水果销售占比2')
# 调整布局
plt.tight_layout()
# 显示图表
plt.show()
小知识:
在使用pandas的plot的时候,是会自动调用matplotlib(内部调用),
但是plot里面比如图例,网格这些又需要导入matplotlib库
设置图形的大小
plt.figure(figsize=(12, 8))#图例大小
通用方法
plt.legend(loc=(0.8,0.75)) 图例及位置
plt.title("name") 图的名字
plt.xlabel() x轴标签
plt.ylabel() y轴标签
plt.gird(True, linestyle='--', color='gray', linewidth=1.5, alpha=0.5)
网格:类型,颜色,线宽度,透明度
plt.show()