Python Pandas:ディレクトリ内のファイルを同様のファイル名でグループ化し、データフレームを特定の順序で連結します

コルトンメドラー

私の目標は、ファイル名の共有特性によってディレクトリ内の.csvファイルをグループ化することです。私のディレクトリには、次の名前のファイルが含まれています。

  • 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

これらのファイルを、後で連結できるように、ファイル名の「ソース」セクションと「レシーバー」セクションに続く番号でグループに分類したいと思います。

グループ1

  • Before_Source1_Receiver1.csv
  • during1_Source1_Receiver1.csv
  • during2_Source1_Receiver1.csv
  • After_Source1_Receiver1.csv

グループ2

  • Before_Source1_Receiver2.csv
  • during1_Source1_Receiver2.csv
  • during2_Source1_Receiver2.csv
  • After_Source1_Receiver2.csv

何か案は?

gold_cy

それはあなたがこれをやりたいと言っている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

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ