Comment on page
📊
Tablo İşlemleri | Pandas
DataFrame üzerinden tablosal işlemler ve verilerin yönetimi
import pandas as pd
# List ile tablo oluşturma
df = pd.DataFrame(<list>, columns=<list>)
df = pd.DataFrame(list(zip(<col1>, <col2>, <col3>, <col4>)))
df = pd.DataFrame(list(zip(<val_list>, <val_list>)), columns=<col_list>, index = <iname_list>) #
# Dict ile tablo oluşturma
df = pd.DataFrame(<dict>, index=<iname_list>)
df = pd.DataFrame({<col>: <val_list>, ...}, index=<iname_list>)
# Sütun değiştirme
df.columns = <list>
# Index değiştirme (ve df'e uygulama)
df.set_index(<col>, inplace=True)
# Index sıfırlama (ve df'e uygulama)
df.reset_index(inplace=True)
# Birden fazla index belirleme
df.set_index(['username', 'email'])
Kullacı tablosu örneği ```py from string import ascii_letters, digits import numpy as np import datetime usernames = ['alice36', 'bob_smith', 'eve'] passwords = [''.join(np.random.choice(list(ascii_letters + digits), 8)) for x in range(3)] creation_dates = [datetime.datetime.now().date() - datetime.timedelta(int(x)) for x in np.random.randint(0, 1500, 3)] df = pd.DataFrame({'username': usernames, 'password': passwords, 'date-created': pd.to_datetime(creation_dates)}) df ``` 
Numpy'dan tablo oluşturma ```py random_data = np.random.random((4,3)) df_random = pd.DataFrame(random_data, columns=['a', 'b', 'c']) df ``` 
İşlem | Açıklama |
---|---|
pd.merge(left=<df1>,right=<df2>, left_on=<iname1>, right_on=<iname2>) | Kesişimi (Inner join) |
pd.merge(left=<df1>,right=<df2>, how='left', left_on=<iname1>, right_on=<iname2>) | A ve kesim (Left join) |
| |
Ana yapı
df<işlem>
İşlem | Açıklama |
---|---|
.dtypes | Tablodaki özellikleri (attr) listeler |
[<col>] | Sütun alma ( pandas.core.series.Series ) |
mean() | Sütunların ortalama değerlerini alma |
loc[<iname>] | İndex ismi ile veri okuma |
.loc[[<iname>, ...], <col_list> ] | Tabloyu parçalama |
.head() | Tablonun başını görüntüleme |
.tail() | Tablonun sonunu görüntüleme |
İşlem | Açıklama |
---|---|
[<col>] | Sütun alma ( pandas.core.series.Series ) |
df[<col>][<i>] | col sütunundaki i . öğeye erişme |
df.loc[<i>, <col>] | i . öğenin col verisine erişme |
df.describe() | İstatistiksel verileri alma (count mean std min 25 50 75 max) |
İşlem | Açıklama |
---|---|
df.loc[df[<column_name>] == <some_value>] | Sütunun değeri eşit olanları listeleme |
df.loc[df['column_name'].isin(some_values)] | |
df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)] | |
⚠df['column_name'] >= A & df['column_name'] <= B
yapısı parantez olmadığındandf['column_name'] >= (A & df['column_name']) <= B
şeklinde algılanır.
# Max / Sum yapıp verileri listeler
idx = pb_all_data.groupby(['post_code'])['items'].transform(max) == pb_all_data['items']
df_items_by_region = pb_all_data[idx]['items'] / pb_all_data.groupby('post_code').sum()['items']
items_by_region = []
for i in range(100):
x, y = df_items_by_region.index[i]
z = df_items_by_region[i]
items_by_region.append((x, y, z))
Last modified 1mo ago