Python 将列添加到多个文件中,合并到一个文件中并对其排序
我是Python世界的新手,我正在与基本操作作斗争。 我有大量的文件名为Python 将列添加到多个文件中,合并到一个文件中并对其排序,python,pandas,sorting,Python,Pandas,Sorting,我是Python世界的新手,我正在与基本操作作斗争。 我有大量的文件名为include\u 10\u 00\u 00.csv,include\u 10\u 00\u 01.csv,include\u 10\u 00\u 02.csv,等等,对应于不同的时间入口小时分钟秒。 内容如下所示: x, y, z, temperature, pressure, u, v, w, k , omega 0, 0, 0, 295, 100001, ... 0, 1, 1, 296, 100002, ...
include\u 10\u 00\u 00.csv
,include\u 10\u 00\u 01.csv
,include\u 10\u 00\u 02.csv
,等等,对应于不同的时间入口小时分钟秒。
内容如下所示:
x, y, z, temperature, pressure, u, v, w, k , omega
0, 0, 0, 295, 100001, ...
0, 1, 1, 296, 100002, ...
...
我想做下面两个操作:
1/为每个文件添加一个t
列,值为0
的import\u 10\u 00\u 00
,值为import\u 10\u 00\u 01
,等等。使用cols
工具为单个文件添加一列t
。但是如何将其添加到所有文件中
data=pd.read_csv('C:/myPath/inlet_10_00_00.csv',sep=',',skiprows=7)
data["t (s)"]="0"
cols=list(data.columns.values)
cols= cols[0:3]+ cols[-1:] + cols[3:10]
cols
newdata=data[cols]
newdata.to_csv('out.csv', index=False)
2/我想将所有这些文件合并到一个文件中,并按t
变量对其进行排序。我应该以这样的格式结束:
x、 y,z,t,温度,压力,u,v,w,k,ω
0, 0, 0, 0, 295,100001, .... this part comes from inlet_10_00_00.csv
0, 1, 1, 0, 296,100002, ...
0, 0, 0, 1, 292,100008, ... this part comes from inlet_10_00_01.csv
0, 1, 1, 1, 294,100012, ...
有什么想法,如何继续吗?以下步骤将帮助您实现预期结果 说明: 1.步骤1:这里我们将列出当前目录中的文件名。然后,我们将对文件名进行排序,以确保文件按所需顺序循环 2.步骤2:在这里,我们将遍历在步骤1中创建的列表,读取一个文件,添加一列,并用相同的名称保存数据帧 3.步骤3:最后,使用
pd.concat
将所有文件连接到一个数据框中,并按t
对数据框进行排序
# Step 1
path = 'C:/myPath/'
files = sorted(os.listdir(path)) # sorting will ensure _001, 002, 003 will bein sequence
## Step 2
for ix, file in enumerate(files,1):
df = pd.read_csv(file, skiprows=7) ## assuming you want to skip first 7 rows in every file
df['t'] = ix
df.to_csv(os.path.join(path, file), index=False)
## Step 3
master_df = pd.concat([pd.read_csv(file) for file in files])
master_df = master_df.sort_values('t').reset_index()
“值0表示
入口\u 10\u 00\u 00
,值1表示入口\u 10\u 00\u 01
”--但是入口\u 11\u 11\u 11
的值是什么?os.path.join(路径,'file')
每次都会覆盖相同的文件。。。你是说os.path.join(路径,文件)
?很高兴知道。如果有帮助,别忘了接受答案。