Python 对于多个文件,将2个csv文件合并为一个
我有200个文件分为两部分。例如:(aapl-BAL-Q.csv和aapl-CAS-Q.csv),我将它们与熊猫合并成aapl-ALL.csv:Python 对于多个文件,将2个csv文件合并为一个,python,pandas,csv,Python,Pandas,Csv,我有200个文件分为两部分。例如:(aapl-BAL-Q.csv和aapl-CAS-Q.csv),我将它们与熊猫合并成aapl-ALL.csv: import pandas as pd a = pd.read_csv('.../aapl-BAL-Q.csv') b = pd.read_csv('.../aapl-CAS-Q.csv') c = pd.concat([a,b], join='outer', axis=0, ignore_index=True, join_axes=None) c.t
import pandas as pd
a = pd.read_csv('.../aapl-BAL-Q.csv')
b = pd.read_csv('.../aapl-CAS-Q.csv')
c = pd.concat([a,b], join='outer', axis=0, ignore_index=True, join_axes=None)
c.to_csv('...aapl-ALL.csv', index=False)
现在我需要对其余的文件(如aa-BAL-Q.csv和aa-CAS-Q.csv)执行此操作,等等。。我想知道如何用最简单的方法,而不是用代码tnx重命名文件名。您可以:
pathlib.Path('/Path/to/data_dir').glob('*.csv')将所有文件读入pandas.Series
- 连接它们
- 将连接的DF保存到CSV文件
from pathlib import Path
p = Path(r'/path/to/data/directory')
files = pd.Series([f.name for f in p.glob('*.csv')])
(files.groupby(files.str.split('-').str[0])
.apply(lambda g: pd.concat([pd.read_csv(p / f) for f in g], ignore_index=True)
.to_csv(p / (g.name.split('-')[0] + '-ALL.csv'), index=False)))