我是Python世界的新手,我正在与基本操作作斗争。
我有大量名为inlet_10_00_00.csv
,inlet_10_00_01.csv
,inlet_10_00_02.csv
等的文件,对应于不同的时间inlet_Hour_minute_sec。
内容如下:
x, y, z, temperature, pressure, u, v, w, k , omega
0, 0, 0, 295, 100001, ...
0, 1, 1, 296, 100002, ...
...
我想做接下来的两个操作:
1 /为每个文件添加t
列,0
的值为inlet_10_00_00
,1
的值为inlet_10_00_01
,等等。添加列{{使用t
工具可以非常轻松地使用单个文件。但是如何将其添加到所有文件中?
cols
2 /我想将所有这些文件合并到一个文件中,并按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)
变量对其进行排序。我应该以这样的格式结束:
x,y,z,t,温度,压力,u,v,w,k,ω
t
任何想法,如何进行?
答案 0 :(得分:1)
以下步骤可帮助您达到预期效果。
说明:
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()