循环合并多个csv文件
Loop to merge multiple csv files
我是 python 的新手。请告诉我以下问题。
通过使用 for 或 while 循环,我想将大约 200 个 csv 文件合并到一个 csv 文件中。 head(5) 的一些 csv 文件如下(每个 csv 文件是 1122 行 * 2 列)。
0sec.csv
ID Damage
0 0 2697.5
1 2 1431.7
2 3 2719.3
3 4 345.8
4 5 349.1
1sec.csv
ID Damage
0 0 507.1
1 2 0.0
2 3 9644.3
3 4 388.7
4 5 0.0
我的目标是制作如下所示的单个 csv 文件。
total_damage.csv
ID 0sec 1sec ~~~ 199sec 200sec
0 0 2697.5 507.1 xxx.x xxx.x
1 2 1431.7 0.0 xxx.x xxx.x
2 3 2719.3 9644.3 xxx.x xxx.x
3 4 345.8 388.7 xxx.x xxx.x
4 5 349.1 0.0 xxx.x xxx.x
我试过的
files = sorted(glob.glob('./python/*'))
df = pd.DataFrame()
for i, f in enumerate(files):
file = pd.read_csv(f)
file.rename(columns = {'Damage': '{}sec'.format(i)})
df = pd.merge(df, file)
df.to_csv('./python/total_Damage.csv', index=False)
错误信息
No common columns to perform merge on. Merge options: left_on=None, right_on=None, left_index=False, right_index=False
如果你能教我 pd.merge with loop 的当前用法,我将不胜感激。
你快到了。首先,你实际上并没有重命名,因为你错过了重命名前面的file=
。
然后,要向数据框添加一列,您只需执行 df[col]=file[col]
。
因此:
df = pd.DataFrame()
for i, f in enumerate(files):
file = pd.read_csv(f)
file = file.rename(columns = {'Damage': '{}sec'.format(i)})
df['{}sec'.format(i)] = file['{}sec'.format(i)]
不要忘记在迭代之前添加一次 id 列。
我是 python 的新手。请告诉我以下问题。
通过使用 for 或 while 循环,我想将大约 200 个 csv 文件合并到一个 csv 文件中。 head(5) 的一些 csv 文件如下(每个 csv 文件是 1122 行 * 2 列)。
0sec.csv
ID Damage
0 0 2697.5
1 2 1431.7
2 3 2719.3
3 4 345.8
4 5 349.1
1sec.csv
ID Damage
0 0 507.1
1 2 0.0
2 3 9644.3
3 4 388.7
4 5 0.0
我的目标是制作如下所示的单个 csv 文件。
total_damage.csv
ID 0sec 1sec ~~~ 199sec 200sec
0 0 2697.5 507.1 xxx.x xxx.x
1 2 1431.7 0.0 xxx.x xxx.x
2 3 2719.3 9644.3 xxx.x xxx.x
3 4 345.8 388.7 xxx.x xxx.x
4 5 349.1 0.0 xxx.x xxx.x
我试过的
files = sorted(glob.glob('./python/*'))
df = pd.DataFrame()
for i, f in enumerate(files):
file = pd.read_csv(f)
file.rename(columns = {'Damage': '{}sec'.format(i)})
df = pd.merge(df, file)
df.to_csv('./python/total_Damage.csv', index=False)
错误信息
No common columns to perform merge on. Merge options: left_on=None, right_on=None, left_index=False, right_index=False
如果你能教我 pd.merge with loop 的当前用法,我将不胜感激。
你快到了。首先,你实际上并没有重命名,因为你错过了重命名前面的file=
。
然后,要向数据框添加一列,您只需执行 df[col]=file[col]
。
因此:
df = pd.DataFrame()
for i, f in enumerate(files):
file = pd.read_csv(f)
file = file.rename(columns = {'Damage': '{}sec'.format(i)})
df['{}sec'.format(i)] = file['{}sec'.format(i)]
不要忘记在迭代之前添加一次 id 列。