Rumah > pangkalan data > tutorial mysql > Bagaimana untuk memilih subset data dalam gaya pertanyaan SQL dalam Pandas?

Bagaimana untuk memilih subset data dalam gaya pertanyaan SQL dalam Pandas?

WBOY
Lepaskan: 2023-08-31 10:13:10
ke hadapan
1175 orang telah melayarinya

如何在 Pandas 的 SQL 查询样式中选择数据子集?

Pengenalan

Dalam siaran ini, saya akan menunjukkan kepada anda cara menggunakan Panda untuk melakukan analisis data dengan penapisan gaya SQL. Kebanyakan data perusahaan disimpan dalam pangkalan data yang memerlukan SQL untuk mendapatkan dan memanipulasi. Sebagai contoh, syarikat seperti Oracle, IBM, Microsoft mempunyai pangkalan data mereka sendiri dan pelaksanaan SQL mereka sendiri.

Para saintis data mesti berurusan dengan SQL pada satu ketika dalam kerjaya mereka kerana data tidak selalu disimpan dalam fail CSV. Saya secara peribadi lebih suka menggunakan Oracle kerana kebanyakan data syarikat saya disimpan dalam Oracle.

Senario – 1 Katakan kita mempunyai tugas untuk mencari semua filem daripada set data filem kami yang mempunyai kriteria berikut.

  • Bahasa filem hendaklah bahasa Inggeris(en) atau Sepanyol(es).
  • Kepopularan filem mestilah antara 500 dan 1000.
  • Status filem mesti diterbitkan.
  • Jumlah undian mestilah lebih daripada 5000. Untuk senario di atas, pernyataan SQL kelihatan seperti berikut.
SELECT
FROM WHERE
title AS movie_title
,original_language AS movie_language
,popularityAS movie_popularity
,statusAS movie_status
,vote_count AS movie_vote_count movies_data
original_languageIN ('en', 'es')

AND status=('Released')
AND popularitybetween 500 AND 1000
AND vote_count > 5000;
Salin selepas log masuk

Sekarang anda telah melihat pernyataan SQL yang memenuhi keperluan anda, mari lakukan langkah demi langkah menggunakan panda. Saya akan tunjukkan dua cara.

Kaedah 1: Indeks Boolean

1. Muatkan set data movies_data ke dalam DataFrame.

import pandas as pd movies = pd.read_csv("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv")
Salin selepas log masuk

Tetapkan pembolehubah untuk setiap syarat.

languages = [ "en" , "es" ] condition_on_languages = movies . original_language . isin ( languages )
condition_on_status = movies . status == "Released"
condition_on_popularity = movies . popularity . between ( 500 , 1000 )
condition_on_votecount = movies . vote_count > 5000
Salin selepas log masuk

3 Gabungkan semua keadaan (tatasusunan boolean) bersama-sama. .

Diterbitkan Tarikh Tayangan
95 Bintang

zh

Diterbitkan

514.569956

10995< p>

Kaedah 2:- kaedah .query(). Kaedah

.query() ialah kaedah untuk menapis data dalam SQL dengan gaya klausa. Syarat boleh dihantar kepada kaedah ini sebagai rentetan, bagaimanapun, nama lajur tidak boleh mengandungi sebarang ruang.

Jika terdapat ruang dalam nama lajur, gunakan fungsi ganti python untuk menggantikannya dengan garis bawah.

Dalam pengalaman saya, saya telah mendapati bahawa kaedah query() adalah lebih pantas daripada kaedah sebelumnya apabila digunakan pada DataFrames yang lebih besar.

final_conditions = ( condition_on_languages & condition_on_status & condition_on_popularity & condition_on_votecount )
columns = [ "title" , "original_language" , "status" , "popularity" , "vote_count" ]
# clubbing all together movies . loc [ final_conditions , columns ]
Salin selepas log masuk

4. Bina rentetan pertanyaan dan laksanakan kaedah.

Sila ambil perhatian bahawa kaedah .query tidak berfungsi dengan rentetan tiga petikan yang menjangkau berbilang baris. .

Populariti

< /td>

Hasil

Waktu Jalan

st

95

165000000

165000000

zh

< /p>

interstellar

724.247784

11 Mei, 2014

675120017783112979Anda juga boleh mencipta nilai secara pemrograman sebagai senarai Python dan menggunakannya dengan (@). tajuk_bahasa asli Tarikh TayanganPendapatan

Masa Jalankan

interstellar724.2477842014 11 Mei 000000293660zhDeadpool 514.569956

6

783112979

108.0

Hubungan

169.0

< /p>

Hubungan

8000000

293660

zh

mati Pelayan

514.569956

2 September 2016

108.0

dan banyak lagi, biasanya dalam pengekodan saya, saya mempunyai pelbagai nilai untuk menyemak klausa "masuk" saya. Jadi sintaks di atas tidak sesuai. Pembolehubah Python boleh dirujuk menggunakan simbol at (@).

import pandas as pd movies = pd . read_csv ( "https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv" )
Salin selepas log masuk

bajet

id

Populariti

p>

Atas ialah kandungan terperinci Bagaimana untuk memilih subset data dalam gaya pertanyaan SQL dalam Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.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