ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据处理笔记8:切片

2022-01-31 17:02:31  阅读:159  来源: 互联网

标签:loc 索引 df 笔记 切片 tabel1 notnull 数据处理 data


经常用到切片操作, 所以把之前这方面的笔记汇总一下

参考: https://blog.csdn.net/weixin_39861498/article/details/109621657

a[start:end:step]

逆序

[0:4:-1]

前两个数字代表范围(取下标0,1,2,3), 最后一个代表步长, -1时倒序

取最后几个元素

a = [1, 2, 3, 4, 5, 6]

a[-1] # 6

a[-2:] # [5, 6]

a[:-2] # [1, 2, 3, 4]

a[-2:-4] # []

a[-4:-2] # [3, 4]

在正向截取列表时,start的索引位置必须在end的索引位置的前面

a = [1, 2, 3, 4, 5, 6]

a[:-3:-1] # [6, 5]

a[1::-1] # [2, 1]

a[-2:-3:-1] # [5]

a[-4:-3:-1] # []

a[1:4:-1] # []

a[1:-1:-1] # []

step为负时,start的索引位置必须在end的索引位置的后面

此处要修改TCA代码取最后50个:

        # 求特征变换矩阵A

        ind = np.argsort(w)#特征值排序后对应的索引(从小到大)

        A = V[:, ind[:-(tca.dim+1):-1]]#得到排序后特征值索引, 倒序取的最后dim(=30)列(最大的30个特征值), 从V中取其对应的特征向量组成矩阵

行列切片

单独取出一般情况的特征

tabel1=medical_data[['序列号','年龄','身高','体重','BMI','O型','A型','B型','AB型','RH(阳1阴0)','乙肝携带']]

 data_notnull = tabel1.loc[tabel1['身高'].notnull()]

参考:

https://blog.csdn.net/wanglingli95/article/details/78887771

data['one':'two']  #当用已知的行索引时为前闭后闭区间,这点与切片稍有不同。

data['w']  #选择表格中的'w'列,使用类字典属性,返回的是Series类型

data.w    #选择表格中的'w'列,使用点属性,返回的是Series类型

data[['w']]  #选择表格中的'w'列,返回的是DataFrame属性

为了确保loc是深拷贝, 辅助填充不影响原数据, 进行一个小尝试:

a=pd.DataFrame([[1,2]],columns=['one', 'two'])

b=a.loc[:,'one']

b['one']=0

print("a:\n",a)

a:

    one  two

0    1    2

.loc[]语法

np多维数组分片时不用加iloc, dataframe需要.

.loc[行标签名/[行标签名list],列标签名/[列标签名list]],即有两个输入参数,第一个指定行名,第二个指定列名。当只有一个参数时,默认是行名(即抽取整行),所有列都选中

原来用的Interpolate是插值, 这里使用中位数median. 参考:

https://www.cnblogs.com/kuangkuangduangduang/p/10257167.html

df.fillna(df.mean()['C':'E']) # 对 C 列到 E 列用平均值填充

dataframe.fillna({'code':'code', 'date':'date'}),第一个code和date分别表示列,后面的表示在该列填充的内容

df = df["YY"][0:4].mean()#求YY列前三项 前四项均值

tabel1=medical_data[['序列号','年龄','身高','体重','BMI','O型','A型','B型','AB型','RH(阳1阴0)','乙肝携带']]

 data_notnull = tabel1.loc[tabel1['身高'].notnull()]

标签:loc,索引,df,笔记,切片,tabel1,notnull,数据处理,data
来源: https://blog.csdn.net/lagoon_lala/article/details/122760657

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有