python处理问题汇总二(重复值索引,顺序读取文件,drop函数,数组元素排名)
文章目录
- 1. python处理重复值索引问题
- 2.python读取文件夹列表的问题
- 3. dataframe删除指定行、列
- 1)drop函数
- 2)inplace参数
- 4. argsort数组索引排名到元素排名
1. python处理重复值索引问题
python3 的index函数只能索引要查找元素的首个索引,这个在多数情况是不能满足索引要求的。
listA = [1, 2, 3, 2]
print(listA.index(2))1
而enumerate函数可以遍历所有元素,可以利用这个函数+列表推导式实现获取所有重复元素的索引值。
listA = [1, 2, 3, 2] #比如要查找列表中的数字2。
indexA = [x for (x, m) in enumerate(listA) if m == 2]
print(indexA)1,3
或
listA = [1, 2, 3, 2]
for (x, m) in enumerate(listA):if m == 2:print(x)1
3
2.python读取文件夹列表的问题
os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
但这样获取的文件名是没有顺序的。
单纯的filenames.sort()会以1,10,100,1000.。。这样的方式读入文件名。
因此,对于这种0.csv, 1.csv, 2.csv……10.csv文件列表,只需要在
filenames=os.listdir()下一行代码中加入
filenames.sort(key=lambda x:int(x[:-4]))
就可以解决顺序读取文件的问题了。
对于带字符串的,如下:
可以先把两边的字符去掉,对比数字排序即可:
path_list.sort(key=lambda x: int(x.split('r_theta_interp_')[1].split('.csv')[0]))
总之,就是去掉文件名多余字符,只剩下数字,排序,即可。
3. dataframe删除指定行、列
1)drop函数
df.drop() # drop删除行或列的内容
删除前两行
df.drop([0, 1])
删除最后一行
df.drop([len(list)-1])
删除行名为name的行
删除列名为name的列
df.drop(["name"]) # 默认删除行
df.drop(["name"], axis=1) # 列需要加axis=1
2)inplace参数
凡是会对原数组作出修改并返回一个新数组的,往往都有一个 inplace可选参数。如果手动设定为True(默认为False),那么原数组直接就被替换。
DF= DF.drop('column_name', axis=1);
DF.drop('column_name',axis=1, inplace=True)
采用inplace=True之后,原数组名(如2情况所示)对应的内存值直接改变;而采用inplace=False之后,原数组名对应的内存值并不改变,需要将新的结果赋给一个新的数组或者覆盖原数组的内存位置(如1情况所示)。
4. argsort数组索引排名到元素排名
对于数组元素进行索引排名时,可以使用np.argsort()返回索引排名,是按照索引从小到大,如下:
result = [9, 4, 3, 7]
# input result as a tuple
# result = np.array(result)
result_arg = np.argsort(result)
print(result_arg)[2 1 3 0]
元素3最小,3对应的索引为2,排在第一个位置,元素9最大,索引为0,排在最后一个位置。
如果想要对元素进行排名:
result = [9, 4, 3, 7]
# input result as a tuple
result = np.array(result)
result_arg = np.argsort(result)
result_rank = np.zeros(len(result_arg))
for i in range(len(result_arg)):result_rank[result_arg[i]] = i
print(result_rank.tolist())[3.0, 1.0, 0.0, 2.0]
9最大,对应3.0, 3最小,对应0.0
或者,使用两次argsort()
result = [9, 4, 3, 7]
# input result as a tuple
result = np.array(result)
result_arg = np.argsort(result)
print(result_arg)
result_arg = np.argsort(result_arg) # 两次argsort和上面是一样的效果
print(result_arg)[2 1 3 0] # 索引排名
[3 1 0 2] # 元素排名
python处理问题汇总二(重复值索引,顺序读取文件,drop函数,数组元素排名)相关推荐
- python如何顺序读取文件夹下的图片及文件
获取文件夹下文件 os.listdir() :用于返回指定的文件夹包含的文件或文件夹的名字的列表.得到的是仅当前路径下的文件名,不包括子目录中的文件,所有需要使用递归的方法得到全部文件名. 但是返回 ...
- python读取文件夹-Python按顺序读取文件夹中文件
参考资料: 涉及到文件操作,我们有时候会读取一个文件夹中的所有的文件.这些文件可能是文件名完全混乱的,也可能是完全格式化的(如1.png,2.png...).下面介绍Python中的几种按顺序(假如有 ...
- rt-thread 学习(二)外部中断 添加头文件 延时函数
rt-thread 学习(二)外部中断 添加头文件 延时函数 设置按键外部中断 开启硬件定时器 初始化配置部分 延时函数 添加头文件 设置按键外部中断 #include <rtthread.h& ...
- python中按照文件夹中文件的排列顺序读取文件内容,python文件显示和windows目录显示一致
原创 python中按照文件夹中文件的排列顺序读取文件内容 2018-12-06 11:49:18 途径北海道 阅读数 3891 更多 分类专栏: python 版权声明:本文为博主原创文章,遵循 C ...
- python concat去除重复值语句_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...
摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这里就简单的介绍一下对于DataFrame去重和取重复值的操作. 创建DataFrame 这里首先创建一个 ...
- Python中数据清洗缺失值,重复值和异常值的处理
1 缺失值的处理 1.1 常规缺失值的处理 np.nan,NaN,None,NaT(时间数据类型的缺失值)等 df.isnull() 1.判断每一个df中的数据是否为缺失值,是则返回True,否则返回 ...
- php数组重复值销毁,如何从PHP中删除数组中的重复值
如何从PHP中删除数组中的重复值 如何从PHP中删除数组中的重复值? 21个解决方案 204 votes 使用array_unique(). 例: $array = array(1, 2, 2, 3) ...
- 【Python】Python实战从入门到精通之六 -- 教你读取文件
本文是<Python实战从入门到精通>系列之第6篇 [Python]Python实战从入门到精通之一 -- 教你深入理解Python中的变量和数据类型 [Python]Python实战从入 ...
- 《Python编程从入门到实践》记录之读取文件
目录 1.读取整个文件 2.文件路径 3.逐行读取文件 4.创建包含文件各行内容的列表并使用它 从文件读取数据有两种方式:(1)一次性读取整个文件的全部内容:(2)以每次一行的方式逐步读取. 1.读取 ...
最新文章
- sql server分布式事务解决方案[新事务不能登记到指定的事务处理器中错误]
- windows下命令行启动tomcat
- 在IntelliJ IDEA中使用git
- Exchange server 2013(十二)IRM故障排除
- 手机型号云服务器,手机型号查询接口
- 关于虚拟机下linux共享Windows文件的解决方案
- 年薪百万程序员竟遭亲妈拍卖:才拍到10块,还不够买一盒鸡蛋!
- mysql中 routine
- 数据存储-CoreData总结
- 如何在JavaScript中检查变量是否为整数?
- oracle执行计划cost单位,Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引
- 微软商店下载的python 的 pip 不能修改 config 的解决方法
- 人体姿态识别-左肩和左肘的定位识别
- 直播svga礼物应该如何设计,让用户更加青睐
- 量子力学对计算机影响,人们对量子力学的理解有误?
- 公司如何使用开源软件
- 数据防泄漏对于数据安全的重要性
- 迷途emlog模板全站好看的变色模板源码(内含搭建教程)
- android Camera 设置焦距
- 有点甜的小姐姐,概念原画师Z.W.Gu作品