Buat kerangka data kosong untuk loop python

Pertanyaan yang sangat umum dalam konteks panda adalah apakah Anda benar-benar dapat membuat DataFrame kosong dan kemudian mengisinya secara iteratif dengan menambahkan -katakanlah- satu baris pada satu waktu. Namun, pendekatan ini cenderung tidak efisien dan harus dihindari dengan cara apa pun

Pada artikel hari ini kita akan membahas pendekatan alternatif yang akan memberi Anda hasil yang sama tetapi jauh lebih efisien daripada membuat DataFrame kosong dan kemudian menggunakan loop untuk menambahkan baris di dalamnya

Apa yang harus dihindari

Tentu saja, sebenarnya mungkin untuk membuat DataFrame panda kosong dan kemudian menambahkan baris secara iteratif. Pendekatan ini khususnya akan terlihat seperti di bawah ini

import numpy as np
import pandas as pd
from numpy.random import randint
# Make sure results are reproducible
np.random.seed(10)
# Instantiate an empty pandas DF
df = pd.DataFrame(columns=['colA', 'colB', 'colC'])
# Fill in the dataframe using random integers
for i in range(7):
df.loc[i] = [i] + list(randint(100, size=2))
print(df)
colA colB colC
0 0 9 15
1 1 64 28
2 2 89 93
3 3 29 8
4 4 73 0
5 5 40 36
6 6 16 11

Meskipun pendekatan di atas akan melakukan trik, itu harus dihindari karena sangat tidak efisien dan pasti ada pendekatan yang jauh lebih efisien daripada membuat DataFrame kosong dan kemudian membangunnya menggunakan loop iteratif

Pendekatan yang lebih buruk, adalah penggunaan metode ________22______ atau concat() di dalam loop

Perlu dicatat bahwa concat() (dan oleh karena itu append()) membuat salinan lengkap dari data, dan bahwa penggunaan kembali fungsi ini secara terus-menerus dapat menghasilkan peningkatan kinerja yang signifikan. Jika Anda perlu menggunakan operasi pada beberapa kumpulan data, gunakan pemahaman daftar

— dokumen panda

Menggunakan daftar sebagai gantinya

Alih-alih menambahkan baris secara iteratif menggunakan properti loc[] atau metode append/concat, Anda sebenarnya dapat menambahkan data ke dalam daftar dan akhirnya membuat instance DataFrame panda baru langsung dari daftar yang telah dibuat sebelumnya. Ini bahkan disebutkan dalam dokumentasi resmi panda

Menambahkan baris secara iteratif ke DataFrame bisa lebih intensif secara komputasi daripada satu gabungan. Solusi yang lebih baik adalah dengan menambahkan baris tersebut ke daftar dan kemudian menggabungkan daftar tersebut dengan DataFrame asli sekaligus

— dokumen panda

import numpy as np
import pandas as pd
from numpy.random import randint
# Make sure results are reproducible
np.random.seed(10)
data = []
for i in range(7):
data.append([i] + list(randint(100, size=2))
df = pd.DataFrame(data, columns=['colA', 'colB', 'colC'])print(df)
colA colB colC
0 0 9 15
1 1 64 28
2 2 89 93
3 3 29 8
4 4 73 0
5 5 40 36
6 6 16 11
_

Bekerja dengan daftar (baik menambahkan atau menghapus elemen) jauh lebih efisien dan Anda harus selalu memilih pendekatan ini ketika menambahkan baris secara iteratif ke panda DataFrames

Pikiran Akhir

Pada artikel hari ini, kami membahas mengapa penting untuk menghindari pembuatan DataFrames panda kosong dan mengisinya secara iteratif karena ini akan memengaruhi kinerja secara signifikan

Sebagai gantinya, kami menjelajahi cara membangun konstruksi seperti itu secara iteratif menggunakan daftar dan akhirnya membuat DataFrames panda baru dari daftar yang dibuat

Jadilah anggota dan baca setiap cerita di Medium. Biaya keanggotaan Anda secara langsung mendukung saya dan penulis lain yang Anda baca. Anda juga akan mendapatkan akses penuh ke setiap cerita di Medium

Bingkai data adalah struktur data dua dimensi. DataFrame juga dapat dianggap sebagai kombinasi dari dua atau lebih seri. Kita harus mengimpor panda untuk membuat DataFrame

Fungsi dataframe() dapat digunakan untuk membangun DataFrames. Dataframe() mengambil satu atau dua parameter. Yang pertama adalah informasi yang perlu dimasukkan ke dalam tabel DataFrame.  

Mari kita membuat DataFrame panda sederhana menggunakan metode DataFrame agar terbiasa dengan DataFrame panda

# import pandas
import pandas as pd  
  
# creating empty DataFrame
df = pd.DataFrame()  
  
# printing the DataFrame
print(df)

Keluaran

Empty DataFrame
Columns: []
Index: []

Seperti yang Anda lihat, kode di atas telah membuat DataFrame panda kosong. Sekarang, mari kita membuat DataFrame dengan menambahkan beberapa data

Pertama, kita akan membuat daftar angka sebagai titik data dan kemudian akan menentukan nama kolom sambil menginisialisasi DataFrame seperti yang ditunjukkan di bawah ini

# initialize data points
data_points = [1, 2, 4, 5, 3, 6, 7]
  
# initializing DataFrame and giving the column name
df = pd.DataFrame(data_points, columns=['values'])
  
print(df)
_

Keluaran

   values
0       1
1       2
2       4
3       5
4       3
5       6
6       7

Seperti yang Anda lihat, kali ini kami dapat menambahkan data ke DataFrame panda. Anda dapat mengonfirmasinya dengan mencetak tipe DataFrame yang baru saja kita buat dengan menjalankan perintah berikut.  

# printing the type 
print(type(df))
_

Keluaran

<class 'pandas.core.frame.DataFrame'>

Seperti yang Anda lihat, tipenya adalah pandas DataFrame.  

Sangat mudah untuk membuat DataFrame kecil dengan menambahkan elemen atau titik data secara manual seperti yang kita lakukan pada contoh di atas, tetapi jika kita membutuhkan kumpulan data yang besar, maka menambahkan elemen secara manual akan memakan banyak waktu.

Dalam kasus seperti itu, kita dapat menggunakan for loop untuk membuat elemen untuk DataFrame

Bagaimana for loop di Python bekerja?

Item diulang berulang kali dengan Python menggunakan for loop sampai selesai. Misalnya, Anda dapat mengulangi item dalam daftar atau string. Sintaks for loop adalah untuk item dalam objek, di mana "objek" mengacu pada iterable yang ingin Anda lewati

Itu juga dapat digunakan untuk mengulang bagian kode tertentu dalam rentang yang ditentukan. Diagram berikut menunjukkan cara kerja Python untuk loop

Buat kerangka data kosong untuk loop python

Seperti yang Anda lihat, setiap kali perulangan for dijalankan, kondisinya diperiksa dan jika perulangan belum berada di item terakhir dalam iterable, maka kode di dalam perulangan akan dieksekusi

Mari kita ambil contoh Python for loop dan cetak angka dari 1 sampai 10

# for loop to print numbers
for i in range(1, 10):
    print(i)
_

Keluaran

1
2
3
4
5
6
7
8
9
_

Seperti yang Anda lihat bahwa kami telah menentukan rentang dari 1 hingga 10 dan tidak mencetak angka 10 karena for loop masuk ke rentang maksimal tetapi tidak mencetaknya.  

Membangun Pandas DataFrame dari for loop

Seperti yang sekarang kita kenal dengan pandas DataFrame dan belajar bagaimana for loop bekerja dengan Python. Saatnya untuk melompat ke tujuan sebenarnya dari artikel ini dan membangun DataFrame panda dari loop for

Kami akan menggunakan metode berbeda berikut untuk membuat DataFrame panda dari loop for

  • Untuk loop untuk membuat daftar
  • Daftar pemahaman
  • Menambahkan elemen ke panda DataFrame menggunakan for loop

Contoh 1. Untuk loop untuk membuat daftar

Seperti yang telah kita lihat pada contoh sebelumnya bahwa kita dapat dengan mudah mengonversi daftar Python menjadi pandas DataFrame dan hal yang sama akan kita lakukan di bagian ini

Tapi alih-alih membuat daftar secara manual, kami akan menggunakan Python for loop untuk membuat daftar, dan kemudian kami akan menggunakan panda untuk mengonversi daftar menjadi DataFrame.  

# creating a list for the rows
rows = []

# using for loop to append values in rows
for i in range(10):
    
    #appending the values to the row
     rows.append(i)
        
# converting the list into DataFrame
df = pd.DataFrame(rows, columns=["column_1"])
print(df)

Keluaran

   column_1
0         0
1         1
2         2
3         3
4         4
5         5
6         6
7         7
8         8
9         9

Seperti yang Anda lihat, kami dapat membuat panda DataFrame menggunakan Python for loop. Kami pertama-tama telah mendefinisikan for loop yang menambahkan nilai ke daftar kosong dan kemudian kami mengonversi daftar itu menjadi panda DataFrame

Tetapi perhatikan bahwa kode di atas hanya dapat membuat DataFrame panda dengan satu kolom. Kita dapat memodifikasi kode ini untuk membuat DataFrame dengan banyak kolom juga. Mari kita buat DataFrame dengan banyak kolom

Empty DataFrame
Columns: []
Index: []
0

Keluaran

Empty DataFrame
Columns: []
Index: []
1

Seperti yang ditunjukkan di atas, kami dapat membuat DataFrame panda dengan banyak kolom menggunakan for loop.  

Contoh-2. Menggunakan daftar pemahaman

Pemahaman daftar Python terdiri dari tanda kurung yang berisi ekspresi, yang dieksekusi untuk setiap elemen bersama dengan perulangan for untuk mengulangi setiap elemen dalam daftar Python

Pemahaman Daftar Python menyediakan sintaks yang jauh lebih singkat untuk membuat daftar baru berdasarkan nilai dari daftar yang ada. Untuk memahami lebih baik, pertama-tama mari kita membuat daftar menggunakan metode pemahaman daftar.  

Empty DataFrame
Columns: []
Index: []
2

Keluaran

Empty DataFrame
Columns: []
Index: []
_3

Seperti yang Anda lihat, kode di atas telah membuat daftar. Sekarang, mirip dengan contoh di atas, kita dapat mengonversi daftar ini menjadi pandas DataFrame

Empty DataFrame
Columns: []
Index: []
_4

Keluaran

   column_1
0         0
1         1
2         2
3         3
4         4
5         5
6         6
7         7
8         8
9         9

Seperti yang Anda lihat, kami telah membuat DataFrame panda menggunakan metode pemahaman daftar. Keuntungan menggunakan pemahaman daftar adalah kita menggunakan lebih sedikit baris kode

Sekarang, mari kita juga membuat DataFrame dengan banyak kolom.  

Empty DataFrame
Columns: []
Index: []
6

Keluaran

Empty DataFrame
Columns: []
Index: []
_7

Output di atas menunjukkan DataFrame yang dibuat dengan menggunakan metode pemahaman daftar

Contoh-3. Menambahkan elemen ke Pandas DataFrame menggunakan for loop

Dalam contoh di atas, kita telah melihat bahwa kita membuat daftar menggunakan for loop terlebih dahulu dan kemudian mengonversi daftar itu menjadi pandas DataFrame. Sementara sekarang kita akan melakukan sebaliknya

Kita sekarang akan membuat panda DataFrame dan kemudian menggunakan loop for untuk menambahkan nilai ke DataFrame satu per satu.  

Empty DataFrame
Columns: []
Index: []
8

Keluaran

Empty DataFrame
Columns: []
Index: []
_9

Seperti yang Anda lihat, pertama-tama kita membuat DataFrame kosong dan kemudian menambahkan nilai ke dalamnya menggunakan for loop

Kesimpulan

Pandas DataFrame adalah struktur data n-dimensi, seperti larik 2 dimensi, atau tabel dengan baris dan kolom

Kita dapat menggunakan metode dataframe() dari modul panda untuk membuat DataFrame panda. Dalam artikel singkat ini, kita belajar bagaimana kita bisa membuat panda DataFrame dari for loop dengan Python menggunakan berbagai metode

Bagaimana Anda membuat DataFrame dalam satu lingkaran dengan Python?

Langkah 1 - Impor perpustakaan. impor panda sebagai pd. .
Langkah 2 - Siapkan Data. df=pd. DataFrame({'Tabel 9'. [9,18,27], 'Tabel 10'. [10,20,30]}).
Langkah 3 - Menambahkan bingkai data dalam for loop. untuk saya dalam rentang (4,11). df=df. tambahkan({'Tabel 9'. i*9,'Tabel 10'. i*10},ignore_index=True).
Langkah 4 - Mencetak hasil. cetak('df\n',df)

Bagaimana Anda membuat DataFrame kosong dengan Python?

Anda dapat membuat kerangka data kosong dengan mengimpor panda dari pustaka python . Kemudian, menggunakan pd. DataFrame(), buat dataframe kosong tanpa baris dan kolom seperti yang ditunjukkan pada contoh di bawah ini.

Bisakah Anda mengulang DataFrame dengan Python?

Anda dapat mengulangi bingkai data panda, untuk setiap kolom baris demi baris .

Bagaimana cara membuat bingkai data berganda untuk perulangan for?

Membuat banyak kerangka data dalam satu lingkaran . Kamus digunakan untuk menyimpan data yang heterogen. Data disimpan dalam kunci. pasangan nilai. first create a dictionary and then define each key as the element of that list. Dictionaries are used to store heterogeneous data. The data is stored in key:value pair.