Isi bingkai data kosong di 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 append() atau concat() di dalam loop

Perlu dicatat bahwa concat()_ (dan oleh karena itu append()) membuat salinan lengkap dari data, dan bahwa terus-menerus menggunakan kembali fungsi ini 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

Pada artikel ini kita akan membahas berbagai cara untuk membuat DataFrame kosong dan kemudian mengisi data di dalamnya nanti dengan menambahkan baris atau kolom

Misalkan kita ingin membuat DataFrame kosong terlebih dahulu dan kemudian menambahkan data ke dalamnya pada tahap selanjutnya. Mari kita lihat bagaimana melakukannya,

Impor modul panda python seperti ini,

import pandas as pd

Buat DataFrame kosong dengan hanya nama kolom tetapi tidak ada baris

Misalkan kita tahu nama kolom DataFrame kita tetapi kita tidak memiliki data apa pun saat ini. Jadi kita akan membuat DataFrame kosong hanya dengan nama kolom seperti ini,

# Creating an empty Dataframe with column names only
dfObj = pd.DataFrame(columns=['User_ID', 'UserName', 'Action'])

print("Empty Dataframe ", dfObj, sep='\n')

Konten dari DataFrame kosong yang dibuat adalah,
Columns: [User_ID, UserName, Action]
Index: []
_
Bagaimana cara kerjanya?

Kelas Dataframe menyediakan konstruktor untuk membuat objek Dataframe dengan meneruskan nama kolom, nama indeks & data dalam argumen seperti ini,

def __init__(self, data=None, index=None, columns=None, dtype=None,

Untuk membuat objek bingkai data kosong, kami hanya memberikan argumen kolom dan untuk indeks & argumen default data akan digunakan

Tambahkan baris ke DataFrame kosong

Karena kami telah membuat DataFrame kosong, jadi mari kita lihat cara menambahkan baris ke dalamnya,

# Append rows in Empty Dataframe by adding dictionaries
dfObj = dfObj.append({'User_ID': 23, 'UserName': 'Riti', 'Action': 'Login'}, ignore_index=True)
dfObj = dfObj.append({'User_ID': 24, 'UserName': 'Aadi', 'Action': 'Logout'}, ignore_index=True)
dfObj = dfObj.append({'User_ID': 25, 'UserName': 'Jack', 'Action': 'Login'}, ignore_index=True)

print("Dataframe Contens ", dfObj, sep='\n')
_
Keluaran
  User_ID UserName  Action
0      23     Riti   Login
1      24     Aadi  Logout
2      25     Jack   Login

Tiga baris ditambahkan ke DataFrame

Buat DataFrame kosong lengkap tanpa nama kolom atau indeks apa pun

Kita dapat membuat kerangka data kosong lengkap hanya dengan memanggil konstruktor kelas Dataframe tanpa argumen seperti ini,

# Create an completely empty Dataframe without any column names, indices or data
dfObj = pd.DataFrame()
_
Karena kami belum memberikan argumen apa pun, maka nilai default dari semua argumen adalah Tidak ada dan itu akan membuat kerangka data kosong dfObj. Isinya adalah sebagai berikut,
Columns: []
Index: []
_
Sekarang mari kita lihat cara menambahkan kolom dengan data ke Dataframe kosong ini,

Menambahkan kolom ke DataFrame kosong

# Append columns to the Empty DataFrame
dfObj['UserName'] = ['Riti', 'Aadi', 'Jack']
dfObj['Name'] = ['Riti', 'Aadi', 'Jack']
dfObj['Name'] = ['Riti', 'Aadi', 'Jack']

print("Dataframe Contents ", dfObj, sep='\n')

Keluaran
Dataframe Contens 
  UserName  Name
0     Riti  Riti
1     Aadi  Aadi
2     Jack  Jack

Buat Bingkai Data kosong dengan nama kolom dan indeks baris tetapi tanpa data

Mungkin dalam beberapa kasus kita mengetahui nama kolom & indeks baris di awal tetapi kita belum memiliki data. Jadi kita akan membuat DataFrame kosong dan menambahkan data ke dalamnya pada tahap selanjutnya seperti ini,

# Creating an empty Dataframe with column names only
dfObj = pd.DataFrame(columns=['User_ID', 'UserName', 'Action'])

print("Empty Dataframe ", dfObj, sep='\n')
0
Di sini kami meneruskan argumen kolom dan indeks ke konstruktor Dataframe tetapi tanpa argumen data. Jadi, ini akan membuat kerangka data kosong dengan semua data sebagai NaN
# Creating an empty Dataframe with column names only
dfObj = pd.DataFrame(columns=['User_ID', 'UserName', 'Action'])

print("Empty Dataframe ", dfObj, sep='\n')
1

Tambahkan baris ke bingkai data kosong pada indeks yang ada

# Creating an empty Dataframe with column names only
dfObj = pd.DataFrame(columns=['User_ID', 'UserName', 'Action'])

print("Empty Dataframe ", dfObj, sep='\n')
2
keluaran
# Creating an empty Dataframe with column names only
dfObj = pd.DataFrame(columns=['User_ID', 'UserName', 'Action'])

print("Empty Dataframe ", dfObj, sep='\n')
_3
Contoh lengkapnya adalah sebagai berikut
# Creating an empty Dataframe with column names only
dfObj = pd.DataFrame(columns=['User_ID', 'UserName', 'Action'])

print("Empty Dataframe ", dfObj, sep='\n')
_4
Keluaran
# Creating an empty Dataframe with column names only
dfObj = pd.DataFrame(columns=['User_ID', 'UserName', 'Action'])

print("Empty Dataframe ", dfObj, sep='\n')
5
 

 

Iklan

Terima kasih sudah membaca

Bagaimana Anda menambahkan data ke DataFrame kosong dengan Python?

Tambahkan Baris ke DataFrame Kosong . DataFrame. append() digunakan untuk menambahkan baris DataFrame lain ke akhir DataFrame yang diberikan dan mengembalikan objek DataFrame baru . Hasil di bawah output.

Bisakah Anda mengulang DataFrame dengan Python?

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

Bagaimana cara mengisi sel kosong dalam bingkai data?

Anda dapat mengganti nilai kosong/kosong dengan DataFrame. replace() metode . Metode replace() mengganti nilai yang ditentukan dengan nilai lain yang ditentukan pada kolom tertentu atau pada semua kolom dari DataFrame; . Hasil di bawah output.

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)