Pythonは読みやすく・書きやすく・理解しやすい言語です(なので私は好きです)
ライブラリが豊富で、他の言語だと数行書かないといけないところをPythonだと1行で同じ処理を書くことができます
例えばJavaと比較すると
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
numbers[i] = numbers[i] * 2;
}
for (int number : numbers) {
System.out.println(number);
}
numbers = [1, 2, 3, 4, 5]
numbers = [x * 2 for x in numbers]
print(numbers)
javaとPythonのそれぞれで配列の中の数字を2倍にする処理を作成する処理を作成しました。
Javaだと2倍にする処理をfor文で3行で書いていますが、Pythonだと1行で書けます
このようにシンプル差がPythonの良いところです
また、Pandasはデータ分析、操作できるライブラリです
今回はPandasを使用する時に、よく使われる処理を10個ご紹介します
チートシートとして参考にしてください
pandasをimportするコードです
import pandas as pd
1.CSVを読み込む
CSVファイルを読み取りDataFrame型の変数に格納します
df = pd.read_csv('data.csv')
2.NULL値を含む列を削除します
df.drop(df.columns[df.isnull().sum() > 0], axis=1, inplace=True)
isnull()でDataFrame内の各要素に欠損値(NULL値)があるか判定します
その後のsum()で欠損値の個数を計算します
axis=1で列方向(縦)に削除するように設定しています
axis=0で行方向(横)に指定できます
3.既存の列を基に新しい列を作成
f['new_col'] = df.apply(lambda x: x['col_1'] * x['col_2'], axis=1)
apply()で各行に対してデータ操作を行う設定をします
lambda式で'col_1'と'col_2'の掛け算処理しています
4.列のグループ化と平均の計算
df.groupby('col_1').mean()
groupbyでグループ化します
mean()で平均値を取得します
5.条件を満たす行を取得
df.loc[df['col_1'] == 'abc']
locを使い、列'col_1'が'abc'の列を取得します
6.並べ替え
df.sort_values(by='col_name', ascending=False)
sort_valuesでソート処理を行います
byにソート基準の列を設定します
ascending=Falseで降順にソートします(大→小)
ascending=Trueで昇順にソートできます(小→大)
7.欠損している要素に0を設定
df.fillna(0)
NaNやNULL値の欠損している要素を0埋めします
8.重複行を削除
df.drop_duplicates()
9.ピボットテーブルを作成
df.pivot_table(index='col_1', columns='col_2', values='col_3')
例えば、ピボットテーブルを作成し、平均値で集計します
data = {
'col_1': ['A', 'A', 'B', 'B', 'A', 'B'],
'col_2': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'col_3': [10, 20, 30, 40, 50, 60]
}
df = pd.DataFrame(data)
# ピボットテーブルを作成して表示
pivot_table = df.pivot_table(index='col_1', columns='col_2', values='col_3')
print(pivot_table)
# 出力結果
#col_1/col_2 X Y
#A 30 20
#B 45 40
appfuncを設定することで合計(sum)、最小(min)、最大(max)で集計できます
pivot_table = df.pivot_table(index='col_1', columns='col_2', values='col_3', appfunc=sum)
10.CSVファイルに保存
df.to_csv('data.csv', index=False)