Python Pandas: группирует файлы в каталоге по одинаковым именам файлов и объединяет кадры данных в определенном порядке - PullRequest
0 голосов
/ 15 февраля 2019

Моя цель - сгруппировать файлы .csv в каталог по общим характеристикам в имени файла.В моем каталоге находятся файлы с именами:

  • After_Source1_Receiver1.csv
  • After_Source1_Receiver2.csv
  • Before_Source1_Receiver1.csv
  • Before_Source1_Receiver2.csv
  • While1_Source1_Receiver2.csv
  • While2_Source1_Receiver1.csv
  • Во время 2_Source1_Receiver2.csv

я бы хотел отсортировать эти группына числах, следующих за разделами «Источник» и «Получатель» имени файла (как показано ниже), чтобы впоследствии я мог их объединить.

Группа 1

  • Before_Source1_Receiver1.csv
  • В течение1_Source1_Receiver1.csv
  • В течение2_Source1_Receiver1.csv
  • After_Source1_Receiver1.csv

Группа 2

  • Before_Source1_Receiver1038 *
  • В течение1_Source1_Receiver2.csv
  • В течение2_Source1_Receiver2.csv
  • After_Source1_Receiver2.csv

Есть идеи?

1 Ответ

0 голосов
/ 15 февраля 2019

В нем говорится, что вы хотите сделать это в pandas, так что вот решение pandas.

fnames = ['After_Source1_Receiver1.csv',
          'After_Source1_Receiver2.csv',
          'Before_Source1_Receiver1.csv',
          'Before_Source1_Receiver2.csv',
          'During1_Source1_Receiver1.csv',
          'During1_Source1_Receiver2.csv',
          'During2_Source1_Receiver1.csv',
          'During2_Source1_Receiver2.csv']

df = pd.DataFrame(fnames, columns=['names'])

Я не знаю, что вы хотите сделать со своими конечными результатами, но вот какВы группируете их.

pattern = r'Source(\d+)_Receiver(\d+)'
for _, g in pd.concat([df, df['names'].str.extract(pattern)], axis=1).groupby([0,1]):
    print(g.names)

0      After_Source1_Receiver1.csv
2     Before_Source1_Receiver1.csv
4    During1_Source1_Receiver1.csv
6    During2_Source1_Receiver1.csv
Name: names, dtype: object
1      After_Source1_Receiver2.csv
3     Before_Source1_Receiver2.csv
5    During1_Source1_Receiver2.csv
7    During2_Source1_Receiver2.csv
Name: names, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...