-1

我有 200 个文件,分为 2 个部分。例如。(aapl-BAL-Q.csvaapl-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.csvaa-CAS-Q.csv)等等..我想知道如何做最简单的方法,而不是重命名文件名代码,tnx。

4

1 回答 1

1

你可以:

  1. 将所有文件读入 pandas.Series 使用pathlib.Path('/path/to/data_dir').glob('*.csv')
  2. 按文件名的第一部分对该系列进行分组
  3. 读取属于每个组的所有 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)))
于 2018-05-21T11:59:38.363 回答