Perlu diketahui secara lebih luas bahwa string alias 'index' dan 'kolom' dapat digunakan sebagai pengganti bilangan bulat 0/1. Aliasnya jauh lebih eksplisit dan membantu saya mengingat bagaimana penghitungan dilakukan. Alias lain untuk 'indeks' adalah 'baris' .
Ketika axis='index'
digunakan, maka perhitungan terjadi di kolom, yang membingungkan. Tapi, saya ingat mendapatkan hasil yang ukurannya sama dengan baris lainnya.
Mari kita dapatkan beberapa data di layar untuk melihat apa yang saya bicarakan:
df = pd.DataFrame(np.random.rand(10, 4), columns=list('abcd'))
a b c d
0 0.990730 0.567822 0.318174 0.122410
1 0.144962 0.718574 0.580569 0.582278
2 0.477151 0.907692 0.186276 0.342724
3 0.561043 0.122771 0.206819 0.904330
4 0.427413 0.186807 0.870504 0.878632
5 0.795392 0.658958 0.666026 0.262191
6 0.831404 0.011082 0.299811 0.906880
7 0.749729 0.564900 0.181627 0.211961
8 0.528308 0.394107 0.734904 0.961356
9 0.120508 0.656848 0.055749 0.290897
Saat kita ingin mengambil mean dari semua kolom, kita gunakan axis='index'
untuk mendapatkan yang berikut:
df.mean(axis='index')
a 0.562664
b 0.478956
c 0.410046
d 0.546366
dtype: float64
Hasil yang sama didapat oleh:
df.mean()
df.mean(axis=0)
df.mean(axis='rows')
Untuk menggunakan operasi dari kiri ke kanan pada baris, gunakan axis = 'kolom'. Saya mengingatnya dengan berpikir bahwa kolom tambahan dapat ditambahkan ke DataFrame saya:
df.mean(axis='columns')
0 0.499784
1 0.506596
2 0.478461
3 0.448741
4 0.590839
5 0.595642
6 0.512294
7 0.427054
8 0.654669
9 0.281000
dtype: float64
Hasil yang sama didapat oleh:
df.mean(axis=1)
Tambahkan baris baru dengan sumbu = 0 / indeks / baris
Mari gunakan hasil ini untuk menambahkan baris atau kolom tambahan untuk melengkapi penjelasannya. Jadi, setiap kali menggunakan sumbu = 0 / indeks / baris, ini seperti mendapatkan baris baru dari DataFrame. Mari tambahkan baris:
df.append(df.mean(axis='rows'), ignore_index=True)
a b c d
0 0.990730 0.567822 0.318174 0.122410
1 0.144962 0.718574 0.580569 0.582278
2 0.477151 0.907692 0.186276 0.342724
3 0.561043 0.122771 0.206819 0.904330
4 0.427413 0.186807 0.870504 0.878632
5 0.795392 0.658958 0.666026 0.262191
6 0.831404 0.011082 0.299811 0.906880
7 0.749729 0.564900 0.181627 0.211961
8 0.528308 0.394107 0.734904 0.961356
9 0.120508 0.656848 0.055749 0.290897
10 0.562664 0.478956 0.410046 0.546366
Tambahkan kolom baru dengan sumbu = 1 / kolom
Demikian pula, jika sumbu = 1 / kolom akan membuat data yang dapat dengan mudah dibuat menjadi kolomnya sendiri:
df.assign(e=df.mean(axis='columns'))
a b c d e
0 0.990730 0.567822 0.318174 0.122410 0.499784
1 0.144962 0.718574 0.580569 0.582278 0.506596
2 0.477151 0.907692 0.186276 0.342724 0.478461
3 0.561043 0.122771 0.206819 0.904330 0.448741
4 0.427413 0.186807 0.870504 0.878632 0.590839
5 0.795392 0.658958 0.666026 0.262191 0.595642
6 0.831404 0.011082 0.299811 0.906880 0.512294
7 0.749729 0.564900 0.181627 0.211961 0.427054
8 0.528308 0.394107 0.734904 0.961356 0.654669
9 0.120508 0.656848 0.055749 0.290897 0.281000
Tampaknya Anda dapat melihat semua alias dengan variabel privat berikut:
df._AXIS_ALIASES
{'rows': 0}
df._AXIS_NUMBERS
{'columns': 1, 'index': 0}
df._AXIS_NAMES
{0: 'index', 1: 'columns'}