PythonはCSVを複数のファイルに分割します

Zeeshan Afridi 2023年6月21日
  1. Pandas を使用して Python で CSV ファイルを作成する
  2. Python で CSV ファイルを複数のファイルに分割する
  3. まとめ
PythonはCSVを複数のファイルに分割します

この記事では、Python で CSV ファイルを複数のファイルに分割する方法を学習します。 Pandas を使用して CSV ファイルを作成し、それを他の複数のファイルに分割します。

Pandas を使用して Python で CSV ファイルを作成する

Pandas を使用して Python で CSV を作成するには、最初に Command Line Interface (CLI) を使用して Pandas をインストールする必要があります。

pip install pandas

このコマンドは、Pandas をローカル マシンにダウンロードしてインストールします。 import キーワードを使用すると、現在の Python プログラムに簡単にインポートできます。

Pandas がインストールされているかどうかを確認しましょう。

コード例:

import pandas as pd

print("The Version of Pandas is: ", pd.__version__)

出力:

The Version of Pandas is: 1.3.5

それでは、CSVファイルを作成しましょう。

コード例:

import pandas as pd

# create a data set
data_dict = {
    "Roll no": [1, 2, 3, 4, 5, 6, 7, 8],
    "Gender": ["Male", "Female", "Female", "Male", "Male", "Female", "Male", "Female"],
    "CGPA": [3.5, 3.3, 2.7, 3.8, 2.4, 2.1, 2.9, 3.9],
    "English": [76, 77, 85, 91, 49, 86, 66, 98],
    "Mathematics": [78, 87, 54, 65, 90, 59, 63, 89],
    "Programming": [99, 45, 68, 85, 60, 39, 55, 88],
}

# create a data frame
data = pd.DataFrame(data_dict)

# convert the data frame into a csv file
data.to_csv("studesnts.csv")

# Print the output
print(data)

出力:

   Roll no  Gender  CGPA  English  Mathematics  Programming
0        1    Male   3.5       76           78           99
1        2  Female   3.3       77           87           45
2        3  Female   2.7       85           54           68
3        4    Male   3.8       91           65           85
4        5    Male   2.4       49           90           60
5        6  Female   2.1       86           59           39
6        7    Male   2.9       66           63           55
7        8  Female   3.9       98           89           88

Python で CSV ファイルを複数のファイルに分割する

CSV ファイルが正常に作成されました。 それを複数のファイルに分割してみましょう。ただし、異なるマトリックスを使用して、列または行に基づいて CSV を分割できます。

行に基づいて CSV ファイルを分割する

Python の行ベースで CSV ファイルを分割してみましょう。

コード例:

import pandas as pd

# read DataFrame
data = pd.read_csv("students.csv")

# number of csv files along with the row
k = 2
size = 4

for i in range(k):
    df = data[size * i : size * (i + 1)]

    df.to_csv(f"students{i+1}.csv", index=False)

file1 = pd.read_csv("students1.csv")
print(file1)
print("\n")
file2 = pd.read_csv("students2.csv")
print(file2)

出力:

      Roll no  Gender  CGPA  English  Mathematics  Programming
0        1    Male     3.5       76           78           99
1        2    Female   3.3       77           87           45
2        3    Female   2.7       85           54           68
3        4    Male     3.8       91           65           85

      Roll no  Gender  CGPA  English  Mathematics  Programming
4        5   Male     2.4       49           90           60
5        6   Female   2.1       86           59           39
6        7   Male     2.9       66           63           55
7        8   Female   3.9       98           89           88

上記のコードは、students.csv ファイルを student1.csvstudent2.csv の 2つの複数ファイルに分割しています。 ファイルは行単位で区切られています。 行 0 ~ 3 は student.csv に格納され、行 4 ~ 7 は student2.csv ファイルに格納されます。

列に基づいて CSV ファイルを分割する

groupby() 関数を使用して、列マトリックスに基づいて任意の CSV ファイルを分割できます。 groupby() 関数は Pandas ライブラリに属し、グループ データを使用します。

この場合、students データを Gender に基づいてグループ化しています。

コード例:

import pandas as pd

# read DataFrame
data = pd.read_csv("students.csv")

for (gender), group in data.groupby(["Gender"]):
    group.to_csv(f"{gender} students.csv", index=False)

print(pd.read_csv("Male students.csv"))
print("\n")
print(pd.read_csv("Female students.csv"))

出力:

       Roll no  Gender  CGPA  English  Mathematics  Programming
0        1      Male   3.5       76           78           99
1        4      Male   3.8       91           65           85
2        5      Male   2.4       49           90           60
3        7      Male   2.9       66           63           55


       Roll no  Gender  CGPA  English  Mathematics  Programming
0        2      Female   3.3       77           87           45
1        3      Female   2.7       85           54           68
2        6      Female   2.1       86           59           39
3        8      Female   3.9       98           89           88

まとめ

データの分割は、データを理解し、効率的に並べ替えるのに役立つ便利なデータ分析手法です。

この記事では、Pandas ライブラリを使用して CSV ファイルを作成する方法について説明しました。 さらに、行単位と列単位のデータ分割という 2つの一般的なデータ分割手法についても説明しました。

著者: Zeeshan Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

関連記事 - Python CSV