python 数据分析的一些小技巧

234 阅读1分钟

关于dataframe数据结构

1.对数据进行标准化:

data = pd.read_excel('data_shiyan.xlsx',header=0)

data = data.apply(lambda x: ((x - np.min(x)) / (np.max(x) - np.min(x))))

2.求得行和列的长度:

col,row = data.shape

3.关于如何索引(摘抄下来的 链接:www.cnblogs.com/nxf-rabbit7…

#loc只能通过index和columns来取,不能用数字
df.loc[``'one'``,``'a'``]``#one行,a列
df.loc[``'one'``:``'two'``,``'a'``]``#one到two行,a列
df.loc[``'one'``:``'two'``,``'a'``:``'c'``]``#one到two行,a到c列
df.loc[``'one'``:``'two'``,[``'a'``,``'c'``]]``#one到two行,ac列
#iloc只能用数字索引,不能用索引名
df.iloc[``0``:``2``]``#前2行
df.iloc[``0``]``#第0行
df.iloc[``0``:``2``,``0``:``2``]``#0、1行,0、1列
df.iloc[[``0``,``2``],[``1``,``2``,``3``]]``#第0、2行,1、2、3列

4.通过numpy创造列表(如list一般)

import numpy as np
arr1 =  np.numpy(n)#创造一行为n数目的数据
arr2 =  np.numpy((n,m)) #创造n行m列的矩阵 

5.关于时间序列的使用(参考博客:www.programiz.com/python-prog…

6.关于lineplot()中使用hue的情况不能设置legend的解决方法(链接:stackoverflow.com/questions/5…

展示没有好的解决方法,可以使用获得题目中的legend之后使用set_test方法来解决

legend = ax.legend()
legend.texts[0].set_text("Whatever else")

7.联合两个表 pd.merge()

merge分为多个连接方式,有内联、左联和右联,可以尝试着使用merge

pd.merge(how ='inner',on ="") #on可以表示在哪个column上进行连接

8.如果需要计算某一列的比例,但是有不同的列计算,于是使用transform("sum")来得到(参考链接:pbpython.com/pandas_tran…

df["Order_Total"] = df.groupby('order')["ext price"].transform('sum') #对于每一个轴都计算总数
df["Percent_of_Order"] = df["ext price"] / df["Order_Total"]

9.如果需要多个列进行运算,可以使用data.apply(axis=1) 使用,axis代表的是在行中进行引用,而不是在