导航:首页 > 编程语言 > 对列重命名python

对列重命名python

发布时间:2022-08-23 10:26:18

python 如何将一个文件夹里面的文件重新命名

importshutil
importos
path1=r''
path2=r''
path1_ls=os.listdir(path1)
path2_ls=[]
foriinrange(len(path1_ls)):
path1_ls[i]=os.path.join(path1,path1_ls[i])
path2_la.append(os.path.join(path2,paht1_ls[i].replace("_out","")))
foriinrange(len(path1_ls)):
shutil.(path1_ls[i],paht2_ls[i])

大致就这样,你把对应的路径赋值给path1,path2,就可以了

⑵ python怎么对dataframe进行操作

用pandas中的DataFrame时选取行或列:
import numpy as npimport pandas as pdfrom pandas import Sereis, DataFrameser = Series(np.arange(3.))data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz'))data['w'] #选择表格中的'w'列,使用类字典属性,返回的是Series类型data.w #选择表格中的'w'列,使用点属性,返回的是Series类型data[['w']] #选择表格中的'w'列,返回的是DataFrame类型data[['w','z']] #选择表格中的'w'、'z'列data[0:2] #返回第1行到第2行的所有行,前闭后开,包括前不包括后data[1:2] #返回第2行,从0计,返回的是单行,通过有前后值的索引形式,
#如果采用data[1]则报错data.ix[1:2] #返回第2行的第三种方法,返回的是DataFrame,跟data[1:2]同data['a':'b'] #利用index值进行切片,返回的是**前闭后闭**的DataFrame,
#即末端是包含的
data.irow(0) #取data的第一行data.icol(0) #取data的第一列data.head() #返回data的前几行数据,默认为前五行,需要前十行则data.head(10)data.tail() #返回data的后几行数据,默认为后五行,需要后十行则data.tail(10)ser.iget_value(0) #选取ser序列中的第一个ser.iget_value(-1) #选取ser序列中的最后一个,这种轴索引包含索引器的series不能采用ser[-1]去获取最后一个,这会引起歧义。data.iloc[-1] #选取DataFrame最后一行,返回的是Seriesdata.iloc[-1:] #选取DataFrame最后一行,返回的是DataFramedata.loc['a',['w','x']] #返回‘a’行'w'、'x'列,这种用于选取行索引列索引已知data.iat[1,1] #选取第二行第二列,用于已知行、列位置的选取。04142

下面是简单的例子使用验证:
import pandas as pdfrom pandas import Series, DataFrame
import numpy as np

data = DataFrame(np.arange(15).reshape(3,5),index=['one','two','three'],columns=['a','b','c','d','e'])

data
Out[7]:
a b c d eone 0 1 2 3 4two 5 6 7 8 9three 10 11 12 13 14#对列的操作方法有如下几种data.icol(0) #选取第一列E:\Anaconda2\lib\site-packages\spyder\utils\ipython\start_kernel.py:1: FutureWarning: icol(i) is deprecated. Please use .iloc[:,i] # -*- coding: utf-8 -*-Out[35]:
one 0two 5three 10Name: a, dtype: int32

data['a']
Out[8]:
one 0two 5three 10Name: a, dtype: int32

data.aOut[9]:
one 0two 5three 10Name: a, dtype: int32

data[['a']]
Out[10]:
aone 0two 5three 10data.ix[:,[0,1,2]] #不知道列名只知道列的位置时Out[13]:
a b cone 0 1 2two 5 6 7three 10 11 12data.ix[1,[0]] #选择第2行第1列的值Out[14]:
a 5Name: two, dtype: int32

data.ix[[1,2],[0]] #选择第2,3行第1列的值Out[15]:
atwo 5three 10data.ix[1:3,[0,2]] #选择第2-4行第1、3列的值Out[17]:
a ctwo 5 7three 10 12data.ix[1:2,2:4] #选择第2-3行,3-5(不包括5)列的值Out[29]:
c dtwo 7 8data.ix[data.a>5,3]
Out[30]:
three 13Name: d, dtype: int32

data.ix[data.b>6,3:4] #选择'b'列中大于6所在的行中的第4列,有点拗口Out[31]:
dthree 13data.ix[data.a>5,2:4] #选择'a'列中大于5所在的行中的第3-5(不包括5)列Out[32]:
c dthree 12 13data.ix[data.a>5,[2,2,2]] #选择'a'列中大于5所在的行中的第2列并重复3次Out[33]:
c c cthree 12 12 12#还可以行数或列数跟行名列名混着用data.ix[1:3,['a','e']]
Out[24]:
a etwo 5 9three 10 14data.ix['one':'two',[2,1]]
Out[25]:
c bone 2 1two 7 6data.ix[['one','three'],[2,2]]
Out[26]:
c cone 2 2three 12 12data.ix['one':'three',['a','c']]
Out[27]:
a cone 0 2two 5 7three 10 12data.ix[['one','one'],['a','e','d','d','d']]
Out[28]:
a e d d done 0 4 3 3 3one 0 4 3 3 3#对行的操作有如下几种:data[1:2] #(不知道列索引时)选择第2行,不能用data[1],可以用data.ix[1]Out[18]:
a b c d etwo 5 6 7 8 9data.irow(1) #选取第二行Out[36]:
a 5b 6c 7d 8e 9Name: two, dtype: int32

data.ix[1] #选择第2行Out[20]:
a 5b 6c 7d 8e 9Name: two, dtype: int32

data['one':'two'] #当用已知的行索引时为前闭后闭区间,这点与切片稍有不同。Out[22]:
a b c d eone 0 1 2 3 4two 5 6 7 8 9data.ix[1:3] #选择第2到4行,不包括第4行,即前闭后开区间。Out[23]:
a b c d etwo 5 6 7 8 9three 10 11 12 13 14data.ix[-1:] #取DataFrame中最后一行,返回的是DataFrame类型,**注意**这种取法是有使用条件的,只有当行索引不是数字索引时才可以使用,否则可以选用`data[-1:]`--返回DataFrame类型或`data.irow(-1)`--返回Series类型Out[11]:
a b c d ethree 10 11 12 13 14data[-1:] #跟上面一样,取DataFrame中最后一行,返回的是DataFrame类型Out[12]:
a b c d ethree 10 11 12 13 14data.ix[-1] #取DataFrame中最后一行,返回的是Series类型,这个一样,行索引不能是数字时才可以使用Out[13]:
a 10b 11c 12d 13e 14Name: three, dtype: int32

data.tail(1) #返回DataFrame中的最后一行data.head(1) #返回DataFrame中的第一行78179180181182183184185186

最近处理数据时发现当pd.read_csv()数据时有时候会有读取到未命名的列,且该列也用不到,一般是索引列被换掉后导致的,有强迫症的看着难受,这时候dataframe.drop([columns,])是没法处理的,怎么办呢,
最笨的方法是直接给列索引重命名:
data6

Unnamed: 0 high symbol timedate 2016-11-01 0 3317.4 IF1611 18:10:44.82016-11-01 1 3317.4 IF1611 06:01:04.52016-11-01 2 3317.4 IF1611 07:46:25.52016-11-01 3 3318.4 IF1611 09:30:04.02016-11-01 4 3321.8 IF1611 09:31:04.0data6.columns = list('abcd')

data6 a b c ddate 2016-11-01 0 3317.4 IF1611 18:10:44.82016-11-01 1 3317.4 IF1611 06:01:04.52016-11-01 2 3317.4 IF1611 07:46:25.52016-11-01 3 3318.4 IF1611 09:30:04.02016-11-01 4 3321.8 IF1611 09:31:04.

重新命名后就可以用dataframe.drop([columns])来删除了,当然不用我这样全部给列名替换掉了,可以只是改变未命名的那个列,然后删除。不过这个用起来总是觉得有点low,有没有更好的方法呢,有,可以不去删除,直接:
data7 = data6.ix[:,1:]1

这样既不改变原有数据,也达到了删除神烦列,当然我这里时第0列删除,可以根据实际选择所在的列删除之,至于这个原理,可以看下前面的对列的操作。

⑶ python批量重命名文件,求助大神!!拜托拜托了!

不清楚你的实际文件/情况,仅以问题中的样例/说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.py

#encoding:utf-8
#Python3.9.6

importos
importsys

srcfile='./文件名.txt'
dstfolder='D:/ZLSJ'

ifnotos.path.exists(srcfile):
print('"%s"doesnotexist'%srcfile)
sys.exit()
ifnotos.path.exists(dstfolder):
print('"%s"doesnotexist'%dstfolder)
sys.exit()

f=open(srcfile,encoding='utf-8')
content=f.readlines()
f.close()

file_list=[]
forfileinos.listdir(dstfolder):
iffile.lower().endswith('.txt'):
file_list.append(file)

n=0
#如果原文件名全部以纯数字命名,则对原文件升序排列
file_list.sort(key=lambdae:int(e[0:-4]))
forfileinfile_list:
ifn<len(content):
newname=content[n].strip()
oldfile=os.path.join(dstfolder,file)
newfile=os.path.join(dstfolder,newname)
print('{0}-->{1}'.format(oldfile,newname))
os.rename(oldfile,newfile)
n=n+1

⑷ python更改文件名称

更改文件名的操作通常都可以在操作系统的库中找到,对所有的编程语言来说都是,python也不例外,在python自带的os库中就有更改文件(夹)名称的函数方法rename,使用实例使用代码和调试结果如下:

#!/usr/bin/python3

import os, sys

# 列出目录

os.mkdir("test")

print ("目录为: %s"%os.listdir(os.getcwd()))


# 重命名

os.rename("test","test2")


print ("重命名成功。")


# 列出重命名后的目录

print ("目录为: %s" %os.listdir(os.getcwd()))

os.rmdir("test2")


所在调试界面

⑸ 如何使用python将一个文件夹下的的一个文件重命名

#批量修改,将lig/ligand里面所有abc.mol改成dock.mol,请指教
importos
importre

orglist=os.listdir('./lig/ligand')
fororgnameinorglist:
filename=orgname.replace('adc.mol','dock.mol)
os.rename("%s"%orgname,"%s"%filename)
print'changed:'+filename

raw_input('renamedone,pressanybuttontoquit.')

⑹ 如何通过python实现对文件所以内容重新命名

你确定只是对一个文件重命名,这有什么意义
import os
os.rename("lig/ligand/adc.mol","lig/ligand/dock.mol")

⑺ list对象如何实现重命名(Python)

# coding = utf-8
import os
path = "D:\\chunyu"#想要重命名所有文件存放的文件夹
filelist = os.listdir(path) #该文件夹下所有的文件(包括文件夹)
list = []
fileopen = open('D:\chunyu.txt','r')#之后想要重命名成的所有名字的集合,这个名字为除去文件扩展名的文件名
i =0
for file in filelist:
print(file)
for line in fileopen:
line = line.strip('\n')
list.append(line)#读取txt里面的所有名字的集合写入list文件
print(list)
fileopen.close()

for file in filelist: #遍历所有文件
Olddir=os.path.join(path,file) #原来的文件路径
if os.path.isdir(Olddir): #如果是文件夹则跳过
continue
filename=os.path.splitext(file)[0] #文件名
filetype=os.path.splitext(file)[1] #文件扩展名
Newdir=os.path.join(path,str(list[i])+filetype)
os.rename(Olddir,Newdir)#重命名
print(Olddir+" has changed as "+Newdir)
i = i+1

⑻ Python3文件重命名

因为你没有“E:/tensorflow/初赛训练数据/test/callreason”该目录

你应该在代码里加入对目录的判定

具体代码如下

#-*-coding:utf-8-*-

#coding=utf-8
importos
ul=r"E:/tensorflow/初赛训练数据/test/callreason"

folder=os.path.exists(ul)
ifnotfolder:#判断是否存在文件夹如果不存在则创建为文件夹
os.makedirs(ul)

filenamelist=os.listdir(ul)
foryinrange(len(filenamelist)):
f=open(ul+'/'+filenamelist[y],"r",encoding='utf-8')
modname=f.readline()
f.close()
newurl=ul+"/"+modname[:-1]+".txt"
os.rename(os.path.join(ul,filenamelist[y]),newurl)
print("执行成功")

执行结果<注意红色框里的代码,这就是需要你加入的代码,用于判断目录是否存在>:

⑼ 如何用python读取数据并重命名新数据

使用open函数打开文件,返回文件句柄
使用文件句柄的read方法读取文件内容
f = open('/path/to/the/file.txt')
txt = f.read()
txt文件的内容将会读取待txt变量中!

阅读全文

与对列重命名python相关的资料

热点内容
android开发技术文档 浏览:62
32单片机写程序 浏览:43
三星双清无命令 浏览:835
汉寿小程序源码 浏览:340
易助erp云服务器 浏览:530
修改本地账户管理员文件夹 浏览:416
python爬虫工程师招聘 浏览:283
小鹏p7听音乐哪个app好 浏览:354
linux下的防火墙 浏览:954
凌达压缩机美芝压缩机 浏览:350
php后面代码不执行 浏览:236
微我手机怎样设置应用加密 浏览:202
条件加密 浏览:628
androidstudio设置中文 浏览:641
汽车换压缩机能提升制冷 浏览:628
安卓开发配什么电脑 浏览:607
linux下php模块 浏览:78
阿里云服务器终端在哪里 浏览:148
app纸有什么用 浏览:224
cuteftp命令 浏览:507