Excel
1、将表格变为超级表
实现方法:Ctrl+T
功能:当有新的数据时,数据图形得到及时更新
2、创建透视表
Alt + D +P
3、动态图表
4、index函数
语法:index(reference,row_now,column_num,area_num)
参数:
reference:必需,对一个或多个单元格的引用。
row_num:引用中某行的行号,函数从该行返回一个引用。
column_num:可选,引用中某列的列标,,函数从该列返回一个引用。
area_num:可选,选择一个引用区域,从该区域中返回row_num和column_num的交集
5、“相差天数”后面输入:=DATEDIF(C5,C6,"D"),
注意:其中,C5为开始日期,C6为结束日期,D则为计算日差。
数据库
1、可以向数据库表中,指定的列添加数据
insert into sku_data (sku,cw_type) values (%s,%s)
Python
1、利用python 对分组排序:
按照旺旺号,订单号,金额进行分组,并按付款时间进行排序
data1['ranks'] = data.groupby(['旺旺号','订单号','商品金额'])['付款时间'].rank().astype(int)
![](https://i-blog.csdnimg.cn/blog_migrate/614b73ada96f7c22a0cc100a15d1550c.png)
2、利用Python构建双层索引,并将双层变成一层。
data2 = pd.pivot_table(data1,values = ['商品金额'],index = ['旺旺号','付款时间'],columns =['ranks'])data2.columns.tolist()
#对列名重命名
data2.columns =[str(s1) +"第"+str(s2)+"次" for (s1,s2) in data2.columns.tolist()]data2.reset_index(inplace =True) #重置索引,然后拉平索引
![](https://i-blog.csdnimg.cn/blog_migrate/b81303a493ca56dafb784504f8a0b9c4.png)
3、分布密度图,可视化制图方法:sns.distplot()
辅助线制图方法:plt.axvline()
4、 将占比转为把百分比的形式
bk_std_fsl['订单占比'] = bk_std_fsl['订单数'].apply(lambda x: '%.2f%%' % (x / bk_std_fsl['订单数'].sum() * 100))
5、去掉缺失值
data.dropna(inplace = True) # 去掉缺失值
6、python pandas去掉重复项
删除所有重复项:
df.drop_duplicates(inplace = True)
Remember:
(inplace = True)
将确保该方法不会返回一个新的DataFrame,但是它将从原始DataFrame中删除所有重复。
7、将多种类型数据进行替换
例如将DataFrame中的空值,某些字符串等全都替换成0
replace([na.nan,'无数据','无数'],0,inplace = True)
8、转置
data.T
9、numpy.concatenate()方法
numpy提供了numpy.concatenate((a1,a2,a3,……),axis =0),能够一次完成多个数组的拼接,其中a1,a2,a3是数组类型的参数。
a = np.array([2,3,4])b = np.array([11,22,22])c = np.array([55,88,99])np.concatenate((a,b,c),axis =0) #默认情况下,axis=0可以不写array([ 2, 3, 4,11, 22, 22, 55, 88,99]) #对于一维数组拼接,axis的值不影响最后的结果。
例如:
angle= np.linspace(0,2*np.pi,4,endpoint=False) # 设置每个数据点的显示位置angle = np.concatenate((angle,[angle[0]]))
![](https://i-blog.csdnimg.cn/blog_migrate/457b6c2b00fe13225aa4149fbe0a3ccd.png)
10、pd.cut()参数
pd.cut(
x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False,duplicates='raise'
)
-
x : 一维数组
-
bins :整数,标量序列或者间隔索引,是进行分组的依据,
如果填入整数n,则表示将x中的数值分成等宽的n份(即每一组内的最大值与最小值之差约相等);
如果是标量序列,序列中的数值表示用来分档的分界值
如果是间隔索引,“ bins”的间隔索引必须不重叠
-
right :布尔值,默认为True表示包含最右侧的数值
当“ right = True”(默认值)时,则“ bins”=[1、2、3、4]表示(1,2],(2,3],(3,4]
当bins是一个间隔索引时,该参数被忽略。
-
labels : 数组或布尔值,可选.指定分箱的标签
如果是数组,长度要与分箱个数一致,比如“ bins”=[1、2、3、4]表示(1,2],(2,3],(3,4]一共3个区间,则labels的长度也就是标签的个数也要是3
如果为False,则仅返回分箱的整数指示符,即x中的数据在第几个箱子里
当bins是间隔索引时,将忽略此参数
-
retbins: 是否显示分箱的分界值。默认为False,当bins取整数时可以设置retbins=True以显示分界值,得到划分后的区间
-
precision:整数,默认3,存储和显示分箱标签的精度。
-
include_lowest:布尔值,表示区间的左边是开还是闭,默认为false,也就是不包含区间左边。
-
duplicates:如果分箱临界值不唯一,则引发ValueError或丢弃非唯一
11、matplotlib.pyplot.axvline()
参数:
x:
数据坐标中的x位置以放置垂直线
ymin:
y轴上的垂直线起始位置,它将取0到1之间的值,0是轴的底部,1是轴的顶部
ymax:
y轴上的垂直线结束位置,它将取0到1之间的值,0是轴的底部,1是轴的顶部
**kwargs:
其他可选参数可更改线的属性,例如
改变颜色,线宽等
12、设置网格线
以下实例添加一个简单的网格线,并设置网格线的样式,格式如下:
grid(color ='color', linestyle ='linestyle', linewidth = number)参数说明:
color:'b' 蓝色,'m' 洋红色,'g' 绿色,'y' 黄色,'r' 红色,'k' 黑色,'w' 白色,'c' 青绿色,'#008000' RGB 颜色符串。
linestyle:'' 实线,'' 破折线,'.' 点划线,':' 虚线。
linewidth:设置线的宽度,可以设置一个数字。
13、matplotlib面积堆叠图
data.plot.area(colormap='',figsize =(x,y))
colormap表示要用的颜色块
14、matplotlib 雷达图
-
绘制雷达图,需要先建立极坐标;
-
建好极坐标以后,可以在极坐标系中绘制柱状图,折线图等,大部分情况都是用折线图,形成一个不规则的闭合多边形。
绘制多个点,并且第一个点与最后一个点相同,使其成为闭合图形。
plt.polar(弧度,半径,"ro",lw) #使用的是弧度制,使用弧度来表示度数;ro中r表示红色,o表示形状;lw表示点的大小
例如:
360度,表示2Π(2*np.pi);180度表示Π(np.pi)
plt.polar(0.25*np.pi,20,)