Rumah > pembangunan bahagian belakang > Tutorial Python > Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!

Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!

WBOY
Lepaskan: 2023-04-15 10:07:02
ke hadapan
1028 orang telah melayarinya

Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!

Kami tahu bahawa Pandas ialah pustaka analisis dan manipulasi data yang paling banyak digunakan dalam Python. Ia menyediakan banyak fungsi dan kaedah untuk menyelesaikan masalah pemprosesan data dengan cepat dalam analisis data.

Untuk menguasai penggunaan fungsi Python dengan lebih baik, saya mengambil set data churn pelanggan sebagai contoh untuk berkongsi 30 fungsi dan kaedah yang paling biasa digunakan dalam proses analisis data. Data boleh dimuat turun di akhir artikel.

Data kelihatan seperti ini:

import numpy as np
import pandas as pd
df = pd.read_csv("Churn_Modelling.csv")
print(df.shape)
df.columns

Salin selepas log masuk

Keluaran Hasil

(10000, 14)
Index(['RowNumber', 'CustomerId', 'Surname', 'CreditScore', 'Geography','Gender', 'Age', 'Tenure', 'Balance', 'NumOfProducts', 'HasCrCard','IsActiveMember', 'EstimatedSalary', 'Exited'],dtype='object')

Salin selepas log masuk

1. >

Penerangan: Parameter "paksi" ditetapkan kepada 1 untuk meletakkan lajur dan 0 untuk meletakkan baris. Tetapkan parameter "inplace=True" kepada True untuk menyimpan perubahan. Kami menolak 4 lajur, jadi bilangan lajur dikurangkan daripada 14 kepada 10.
df.drop(['RowNumber', 'CustomerId', 'Surname', 'CreditScore'], axis=1, inplace=True)
print(df[:2])
print(df.shape)

Salin selepas log masuk

2. Pilih lajur tertentu

Kami membaca data lajur separa daripada fail csv. Parameter usecols boleh digunakan.
GeographyGenderAgeTenureBalanceNumOfProductsHasCrCard
0FranceFemale 42 20.011
 IsActiveMemberEstimatedSalaryExited
0 1101348.88 1
(10000, 10)

Salin selepas log masuk

3.nrows

Anda boleh menggunakan parameter nrows untuk mencipta bingkai data yang mengandungi 5000 baris pertama fail csv. Anda juga boleh menggunakan parameter skiprows untuk memilih baris dari hujung fail. Skiprows=5000 bermakna kita akan melangkau 5000 baris pertama apabila membaca fail csv.
df_spec = pd.read_csv("Churn_Modelling.csv", usecols=['Gender', 'Age', 'Tenure', 'Balance'])
df_spec.head()

Salin selepas log masuk

4 Sampel

Selepas mencipta bingkai data, kami mungkin memerlukan sampel kecil untuk menguji data. Kita boleh menggunakan parameter n atau frac untuk menentukan saiz sampel.
df_partial = pd.read_csv("Churn_Modelling.csv", nrows=5000)
print(df_partial.shape)

Salin selepas log masuk

5. Semak nilai yang hilang

Fungsi isna menentukan nilai yang hilang dalam bingkai data. Dengan menggunakan isna dengan fungsi jumlah kita boleh melihat bilangan nilai yang hilang dalam setiap lajur.
df= pd.read_csv("Churn_Modelling.csv", usecols=['Gender', 'Age', 'Tenure', 'Balance'])
df_sample = df.sample(n=1000)
df_sample2 = df.sample(frac=0.1)

Salin selepas log masuk

6. Gunakan loc dan iloc untuk menambah nilai yang hilang

Gunakan loc dan iloc untuk menambah nilai yang tiada Perbezaan antara kedua-duanya adalah seperti berikut:
df.isna().sum()

Salin selepas log masuk

loc: pilih band Tag

iloc: pilih indeks
  • Kami mula-mula mencipta 20 indeks rawak untuk pemilihan.
Kami akan menggunakan loc untuk menukar beberapa nilai kepada np.nan (nilai tiada).

missing_index = np.random.randint(10000, size=20)

Salin selepas log masuk
20 nilai tiada dalam lajur "Imbangan" dan "Geografi". Mari kita buat contoh lain menggunakan iloc.

df.loc[missing_index, ['Balance','Geography']] = np.nan

Salin selepas log masuk
7. Isikan nilai yang tiada

Fungsi fillna digunakan untuk mengisi nilai yang tiada. Ia menyediakan banyak pilihan. Kita boleh menggunakan nilai tertentu, fungsi agregat seperti min, atau nilai sebelumnya atau seterusnya.
df.iloc[missing_index, -1] = np.nan

Salin selepas log masuk

Parameter kaedah fungsi fillna boleh digunakan untuk mengisi nilai yang hilang berdasarkan nilai sebelumnya atau seterusnya dalam lajur (cth. method="fill"). Ia boleh menjadi sangat berguna untuk data berjujukan seperti siri masa.

8. Padamkan nilai yang hilang
avg = df['Balance'].mean()
df['Balance'].fillna(value=avg, inplace=True)

Salin selepas log masuk

Cara lain untuk menangani nilai yang hilang adalah dengan memadamkannya. Kod berikut akan memadamkan baris dengan sebarang nilai yang hilang.

9. Pilih baris berdasarkan syarat

Dalam sesetengah kes, kami memerlukan pemerhatian (iaitu baris) yang sesuai dengan syarat tertentu
df.dropna(axis=0, how='any', inplace=True)

Salin selepas log masuk

10 dengan pertanyaan

Fungsi pertanyaan menyediakan cara yang lebih fleksibel untuk lulus syarat. Kita boleh menerangkannya menggunakan rentetan.
france_churn = df[(df.Geography == 'France') & (df.Exited == 1)]
france_churn.Geography.value_counts()

Salin selepas log masuk

11. Gunakan isin untuk menerangkan keadaan

Syarat mungkin mempunyai berbilang nilai. Dalam kes ini, lebih baik menggunakan kaedah isin daripada menulis nilai secara individu.
df2 = df.query('80000 < Balance < 100000')
df2 = df.query('80000 < Balance < 100000'
df2 = df.query('80000 < Balance < 100000')

Salin selepas log masuk

df[df['Tenure'].isin([4,6,9,10])][:3]

Salin selepas log masuk
12. Fungsi Groupby

Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data! Fungsi Pandas Groupby ialah fungsi serba boleh dan mudah digunakan yang membantu mendapatkan gambaran keseluruhan tentang anda data. Ia menjadikannya lebih mudah untuk meneroka set data dan mendedahkan hubungan asas antara pembolehubah.

Kami akan melakukan beberapa contoh fungsi nisbah kumpulan. Mari kita mulakan dengan mudah. Kod berikut akan mengumpulkan baris berdasarkan Geografi, gabungan Jantina, dan kemudian memberikan aliran purata setiap kumpulan

13.Groupby digabungkan dengan fungsi agregat

fungsi agg membenarkan pada kumpulan Gunakan berbilang fungsi agregat, menghantar senarai fungsi sebagai argumen.
df[['Geography','Gender','Exited']].groupby(['Geography','Gender']).mean()

Salin selepas log masuk

14. Gunakan fungsi pengagregatan yang berbeza pada kumpulan yang berbeza

df[['Geography','Gender','Exited']].groupby(['Geography','Gender']).agg(['mean','count'])

Salin selepas log masuk
Selain itu, "fungsi NamedAgg" membenarkan menamakan semula lajur dalam pengagregatan

df_summary = df[['Geography','Exited','Balance']].groupby('Geography').agg({'Exited':'sum', 'Balance':'mean'})
df_summary.rename(columns={'Exited':'# of churned customers', 'Balance':'Average Balance of Customers'},inplace=True)

Salin selepas log masuk

import pandas as pd
df_summary = df[['Geography','Exited','Balance']].groupby('Geography').agg(Number_of_churned_customers = pd.NamedAgg('Exited', 'sum'),Average_balance_of_customers = pd.NamedAgg('Balance', 'mean'))
print(df_summary)

Salin selepas log masuk
15. Tetapkan semula indeks

Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!Adakah anda perasan format data dalam gambar di atas. Kita boleh mengubahnya dengan menetapkan semula indeks.

print(df_summary.reset_index())

Salin selepas log masuk
16 Tetapkan semula dan padamkan indeks asal

Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!Dalam beberapa kes, kita perlu menetapkan semula indeks dan memadam indeks asal pada masa yang sama. masa.

17. Tetapkan lajur tertentu sebagai indeks

Kami boleh menetapkan mana-mana lajur dalam kerangka data sebagai indeks.
df[['Geography','Exited','Balance']].sample(n=6).reset_index(drop=True)

Salin selepas log masuk

18. Masukkan lajur baharu

df_new.set_index('Geography')

Salin selepas log masuk
19 di mana fungsi

Ia digunakan untuk menggantikan nilai dalam baris atau lajur berdasarkan syarat. Nilai gantian lalai ialah NaN, tetapi kami juga boleh menentukan nilai gantian.
group = np.random.randint(10, size=6)
df_new['Group'] = group

Salin selepas log masuk

20. Fungsi Kedudukan

Fungsi pangkat memberikan kedudukan kepada nilai. Mari buat lajur yang meletakkan kedudukan pelanggan berdasarkan baki mereka.
df_new['Balance'] = df_new['Balance'].where(df_new['Group'] >= 6, 0)

Salin selepas log masuk

21. Bilangan nilai unik dalam lajur

Ia berguna apabila bekerja dengan pembolehubah kategori. Kami mungkin perlu menyemak bilangan kategori unik. Kita boleh menyemak saiz jujukan yang dikembalikan oleh fungsi kiraan nilai atau menggunakan fungsi nunique.
df_new['rank'] = df_new['Balance'].rank(method='first', ascending=False).astype('int')

Salin selepas log masuk

22. Penggunaan memori

Menggunakan fungsi memory_usage, nilai ini menunjukkan memori dalam bait.
df.Geography.nunique

Salin selepas log masuk
df.memory_usage()

Salin selepas log masuk

Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!

23.数据类型转换

默认情况下,分类数据与对象数据类型一起存储。但是,它可能会导致不必要的内存使用,尤其是当分类变量具有较低的基数。

低基数意味着列与行数相比几乎没有唯一值。例如,地理列具有 3 个唯一值和 10000 行。

我们可以通过将其数据类型更改为"类别"来节省内存。

df['Geography'] = df['Geography'].astype('category')

Salin selepas log masuk

24.替换值

替换函数可用于替换数据帧中的值。

df['Geography'].replace({0:'B1',1:'B2'})

Salin selepas log masuk

25.绘制直方图

pandas 不是一个数据可视化库,但它使得创建基本绘图变得非常简单。

我发现使用 Pandas 创建基本绘图更容易,而不是使用其他数据可视化库。

让我们创建平衡列的直方图。

Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!

26.减少浮点数小数点

pandas 可能会为浮点数显示过多的小数点。我们可以轻松地调整它。

df['Balance'].plot(kind='hist', figsize=(10,6),
title='Customer Balance')

Salin selepas log masuk

27.更改显示选项

我们可以更改各种参数的默认显示选项,而不是每次手动调整显示选项。

  • get_option:返回当前选项
  • set_option:更改选项 让我们将小数点的显示选项更改为 2。
pd.set_option("display.precision", 2)

Salin selepas log masuk

可能要更改的一些其他选项包括:

  • max_colwidth:列中显示的最大字符数
  • max_columns:要显示的最大列数
  • max_rows:要显示的最大行数

28.通过列计算百分比变化

pct_change用于计算序列中值的变化百分比。在计算时间序列或元素顺序数组中更改的百分比时,它很有用。

ser= pd.Series([2,4,5,6,72,4,6,72])
ser.pct_change()

Salin selepas log masuk

29.基于字符串的筛选

我们可能需要根据文本数据(如客户名称)筛选观测值(行)。我已经在数据帧中添加了df_new名称。

Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!

df_new[df_new.Names.str.startswith('Mi')]

Salin selepas log masuk

我们可能需要根据文本数据(如客户名称)筛选观测值(行)。我已经在数据帧中添加了df_new名称。

Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!

30.设置数据样式

我们可以通过使用返回 Style 对象的 Style 属性来实现此目的,它提供了许多用于格式化和显示数据框的选项。例如,我们可以突出显示最小值或最大值。

它还允许应用自定义样式函数。

df_new.style.highlight_max(axis=0, color='darkgreen')

Salin selepas log masuk

Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!

Atas ialah kandungan terperinci Tiga puluh fungsi Python menyelesaikan 99% tugas pemprosesan data!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan