Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对于多个文件,将2个csv文件合并为一个_Python_Pandas_Csv - Fatal编程技术网

Python 对于多个文件,将2个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

我有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.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
  • 按文件名的第一部分对该系列进行分组
  • 读取属于每个组的所有CSV文件
    • 连接它们
    • 将连接的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)))