需要拼接两张表,两张表中的字符分别为数字和文字。即格式不同, 不可以使用join
出现报错:“InvalidIndexError: Reindexing only valid with uniquely valued Index objects“
由于表1列索引为“0,1,2,3……”,表2索引为“0,1” 因此被视为重复。
考虑更换列索引标题
但由于读取表时设置了“index_col=0”,即未把行索引显示出来
因此标2的列被计算错了
解决办法:读取两张表时都去掉“index_col=0”,更改表2表名为“a,b”
使用concat拼接。
sns:热力图有用链接~
Python可视化 | Seaborn5分钟入门(六)——heatmap热力图 - 知乎
sns.heatmap() 热地图,包括传统的,下三角,重点(挖空)相关性性图 - 小小喽啰 - 博客园
.loc[]语法:
有两个输入参数,第一个指定行名,第二个指定列名。当只有一个参数时,默认是行名(即抽取整行),所有列都选中。
.iloc[]语法:
有两个输入参数,第一个指定行位置,第二个指定列位置。当只有一个参数时,默认是行位置(即抽取整行),所有列都选中
iloc[;,1]指定第二列全行
矩阵求协方差矩阵df.cov()
矩阵求逆inv(df)
矩阵求伪逆 means对一个非方阵求逆
矩阵相乘 np.dot
遍历 先用shape可以把df一列一列取出,然后range它可以取出列号
# li=[]
ls = np.arange(1).reshape(1, 1) # 创建二维数组
df3 = pd.DataFrame(ls)
for i in range(df2.shape[1]):
df2_0=pd.DataFrame(df2.loc[:,i]-df2_mean).T
df2_0=np.dot(df2_0,inv(df2_cov))
df2_0=np.dot(df2_0,df2_0.T) #这里是array类型
# li.append(df2_0)
df3.loc[len(df3)]=df2_0.tolist() #array()转化为list []再添加到df里 会导致df里每个值都有个[],解决如下
# print(df2_0)
df3
!!!df3.loc[len(df3)]=df2_0.tolist()给df添加行
list_of_lists = [['a', 25, 69, 'Apple'],
[5, 'doll', 854, 41.2],
[8, 6, 'car', True]]
for list_i in list_of_lists:
print(list_i)
#列表里包含列表可通过循环来遍历
拆分多层嵌套列表!python技巧:拆分多层嵌套列表 (bbsmax.com)
seaborn画图
先给columns起名字:df.columns=['name']
然后sns.scatterplot(data=T2_error,x=range(103),y="error")
1.np.where(condition,x,y) 当where内有三个参数时,第一个参数表示条件,当条件成立时where方法返回x,当条件不成立时where返回y
2.np.where(condition) 当where内只有一个参数时,那个参数表示条件,当条件成立时,where返回的是每个符合condition条件元素的坐标,返回的是以元组的形式(元组的形式:array())
hotellingT2统计量 1300个样本 每个样本5个特征
每个样本的5个特征融合so called多元统计量