DataFrameOperations Sınıf

pandas DataFrame CRUD işlemleri için ad alanı.

client.dataframe aracılığıyla erişilir. Kayıt düzeyi CRUD işlemleri etrafında DataFrame odaklı sarmalayıcılar sağlar.

Example:


   import pandas as pd

   client = DataverseClient(base_url, credential)

   # Query records as a DataFrame
   df = client.dataframe.get("account", select=["name"], top=100)

   # Create records from a DataFrame
   new_df = pd.DataFrame([{"name": "Contoso"}, {"name": "Fabrikam"}])
   new_df["accountid"] = client.dataframe.create("account", new_df)

   # Update records
   new_df["telephone1"] = ["555-0100", "555-0200"]
   client.dataframe.update("account", new_df, id_column="accountid")

   # Delete records
   client.dataframe.delete("account", new_df["accountid"])

Oluşturucu

DataFrameOperations(client: DataverseClient)

Parametreler

Name Description
client
Gerekli

Üst DataverseClient örnek.

Yöntemler

create

Pandas DataFrame'den kayıt oluşturma.

İpucu

Tüm satırlar tek bir CreateMultiple isteğinde gönderilir. Çok şey için

büyük DataFrame'ler, önlemek için daha küçük toplu işlemlere bölmeyi göz önünde bulundurun

istek zaman aşımları.

delete

Pandas Serisi GUID'leri geçirerek kayıtları silin.

get

Kayıtları getirme ve tek bir pandas DataFrame olarak döndürme.

Sağlandığında record_id , tek satırlı bir DataFrame döndürür. Yok olduğunda record_id , tüm sayfaları dahili olarak yineler ve birleştirilmiş bir DataFrame döndürür.

İpucu

Büyük tablolarda, sonuç kümesini sınırlamak için üst veya filtre kullanın.

sql

Bir SQL sorgusu yürütür ve sonuçları pandas DataFrame olarak döndürür.

Kayıt listesini tek bir DataFrame'e sql temsilci olarak verir ve dönüştürür.

update

Pandas DataFrame'den kayıtları güncelleştirme.

DataFrame'deki her satır bir güncelleştirmeyi temsil eder. kayıt GUID'lerini id_column içeren sütunu belirtir.

İpucu

Tüm satırlar tek bir UpdateMultiple isteğinde (veya

tek satır için tek PATCH). Çok büyük DataFrame'ler için

istek zaman aşımlarını önlemek için daha küçük toplu işlemlere bölünür.

create

Pandas DataFrame'den kayıt oluşturma.

İpucu

Tüm satırlar tek bir CreateMultiple isteğinde gönderilir. Çok şey için

büyük DataFrame'ler, önlemek için daha küçük toplu işlemlere bölmeyi göz önünde bulundurun

istek zaman aşımları.

create(table: str, records: DataFrame) -> Series

Parametreler

Name Description
table
Gerekli
str

Tablonun şema adı (ör. "account" veya "new_MyTestTable").

records
Gerekli

Her satırın oluşturulacak bir kayıt olduğu DataFrame.

Döndürülenler

Tür Description

Giriş DataFrame diziniyle hizalanmış, oluşturulan kayıt GUID'leri serisi.

Özel durumlar

Tür Description

Pandas records DataFrame değilse.

Boşsa records veya döndürülen kimlik sayısı giriş satırlarının sayısıyla eşleşmiyorsa.

Örnekler

DataFrame'den kayıt oluşturma:


   import pandas as pd

   df = pd.DataFrame([
       {"name": "Contoso", "telephone1": "555-0100"},
       {"name": "Fabrikam", "telephone1": "555-0200"},
   ])
   df["accountid"] = client.dataframe.create("account", df)

delete

Pandas Serisi GUID'leri geçirerek kayıtları silin.

delete(table: str, ids: Series, use_bulk_delete: bool = True) -> str | None

Parametreler

Name Description
table
Gerekli
str

Tablonun şema adı (ör. "account" veya "new_MyTestTable").

ids
Gerekli

Silinecek kayıt GUID'leri serisi.

use_bulk_delete

True (varsayılan) ve ids birden çok değer içerdiğinde BulkDelete eylemini yürütür ve zaman uyumsuz iş tanımlayıcısını döndürür. Her kayıt sırayla silindiğinde False .

Default value: True

Döndürülenler

Tür Description
str,

BulkDelete aracılığıyla birden çok kaydı silerken BulkDelete iş kimliğini silme; None tek bir kaydı silerken, sıralı silmeyi kullanırken veya boş olduğunda ids .

Özel durumlar

Tür Description

Pandas ids Serisi değilse.

ids Geçersiz (dize olmayan, boş veya yalnızca boşluk) değerler içeriyorsa.

Örnekler

Seri kullanarak kayıtları silme:


   import pandas as pd

   ids = pd.Series(["guid-1", "guid-2", "guid-3"])
   client.dataframe.delete("account", ids)

get

Kayıtları getirme ve tek bir pandas DataFrame olarak döndürme.

Sağlandığında record_id , tek satırlı bir DataFrame döndürür. Yok olduğunda record_id , tüm sayfaları dahili olarak yineler ve birleştirilmiş bir DataFrame döndürür.

İpucu

Büyük tablolarda, sonuç kümesini sınırlamak için üst veya filtre kullanın.

get(table: str, record_id: str | None = None, select: List[str] | None = None, filter: str | None = None, orderby: List[str] | None = None, top: int | None = None, expand: List[str] | None = None, page_size: int | None = None, count: bool = False, include_annotations: str | None = None) -> DataFrame

Parametreler

Name Description
table
Gerekli
str

Tablonun şema adı (ör. "account" veya "new_MyTestTable").

record_id
str

Belirli bir kaydı getirmek için isteğe bağlı GUID. Yok ise, birden çok kaydı sorgular.

Default value: None
select
list[str] veya None

Alınacak öznitelik mantıksal adlarının isteğe bağlı listesi.

Default value: None
filter
str

İsteğe bağlı OData filtre dizesi. Sütun adları tam küçük harf mantıksal adları kullanmalıdır.

Default value: None
orderby
list[str] veya None

Sıralama ölçütü olarak isteğe bağlı öznitelik listesi.

Default value: None
top
int

İsteğe bağlı olarak döndürülecek kayıt sayısı üst sınırı.

Default value: None
expand
list[str] veya None

Genişletilmesi için isteğe bağlı gezinti özellikleri listesi (büyük/küçük harfe duyarlı).

Default value: None
page_size
int

Sayfalandırma için sayfa başına isteğe bağlı kayıt sayısı.

Default value: None
count

ise True, $count=true yanıta toplam kayıt sayısını ekler.

Default value: False
include_annotations
str

Üst bilgi (ör. "*" veya ) veya None"OData.Community.Display.V1.FormattedValue"için Prefer: odata.include-annotations OData ek açıklama deseni.

Default value: None

Döndürülenler

Tür Description

Eşleşen tüm kayıtları içeren DataFrame. Hiçbir kayıt eşleşmediğinde boş bir DataFrame döndürür.

Özel durumlar

Tür Description

Boş record_id olmayan bir dize değilse veya sorgu parametreleriyse ( filterorderbytopexpandpage_sizerecord_id

Örnekler

Tek bir kaydı DataFrame olarak getirme:


   df = client.dataframe.get("account", record_id=account_id, select=["name", "telephone1"])
   print(df)

Filtreleme içeren sorgu:


   df = client.dataframe.get("account", filter="statecode eq 0", select=["name"])
   print(f"Got {len(df)} active accounts")

Sonuç boyutunu sınırla:


   df = client.dataframe.get("account", select=["name"], top=100)

sql

Bir SQL sorgusu yürütür ve sonuçları pandas DataFrame olarak döndürür.

Kayıt listesini tek bir DataFrame'e sql temsilci olarak verir ve dönüştürür.

sql(sql: str) -> DataFrame

Parametreler

Name Description
sql
Gerekli
str

Desteklenen SQL SELECT deyimi.

Döndürülenler

Tür Description

Tüm sonuç satırlarını içeren DataFrame. Satır eşleşmediğinde boş bir DataFrame döndürür.

Özel durumlar

Tür Description

Dize değilse veya boşsa sql .

Örnekler

DataFrame'e SQL sorgusu:


   df = client.dataframe.sql(
       "SELECT TOP 100 name, revenue FROM account "
       "WHERE statecode = 0 ORDER BY revenue"
   )
   print(f"Got {len(df)} rows")
   print(df.head())

Sorguyu DataFrame'e toplama:


   df = client.dataframe.sql(
       "SELECT a.name, COUNT(c.contactid) as cnt "
       "FROM account a "
       "JOIN contact c ON a.accountid = c.parentcustomerid "
       "GROUP BY a.name"
   )

update

Pandas DataFrame'den kayıtları güncelleştirme.

DataFrame'deki her satır bir güncelleştirmeyi temsil eder. kayıt GUID'lerini id_column içeren sütunu belirtir.

İpucu

Tüm satırlar tek bir UpdateMultiple isteğinde (veya

tek satır için tek PATCH). Çok büyük DataFrame'ler için

istek zaman aşımlarını önlemek için daha küçük toplu işlemlere bölünür.

update(table: str, changes: DataFrame, id_column: str, clear_nulls: bool = False) -> None

Parametreler

Name Description
table
Gerekli
str

Tablonun şema adı (ör. "account" veya "new_MyTestTable").

changes
Gerekli

Her satırın bir kayıt GUID'sini ve güncelleştirilecek alanları içerdiği DataFrame.

id_column
Gerekli
str

Kayıt GUID'lerini içeren DataFrame sütununun adı.

clear_nulls

Ne zaman False (varsayılan), eksik değerler (NaN/Yok) atlanır (alan sunucuda değişmeden bırakılır). olduğunda True, eksik değerler Dataverse'e gönderilerek null alanı temizlenir. Yalnızca NaN/Yok değerlerinin alanları temizlemesini bilerek istediğinizde kullanın True .

Default value: False

Özel durumlar

Tür Description

Pandas changes DataFrame değilse.

Boşsa, DataFrame'de bulunmazsachanges, id_column geçersiz (dize olmayan, boş veya yalnızca boşluk içeren) değerler içerir veya şudur: dışındaclear_nullsFalseclear_nullsid_columngüncelleştirilebilir sütun yok id_columnTrue

Örnekler

Satır başına farklı değerlerle kayıtları güncelleştirin:


   import pandas as pd

   df = pd.DataFrame([
       {"accountid": "guid-1", "telephone1": "555-0100"},
       {"accountid": "guid-2", "telephone1": "555-0200"},
   ])
   client.dataframe.update("account", df, id_column="accountid")

Aynı değişikliği tüm kayıtlara yayınlayın:


   df = pd.DataFrame({"accountid": ["guid-1", "guid-2", "guid-3"]})
   df["websiteurl"] = "https://example.com"
   client.dataframe.update("account", df, id_column="accountid")

clear_nulls=Doğru ayarını yaparak bir alanı temizleyin:


   df = pd.DataFrame([{"accountid": "guid-1", "websiteurl": None}])
   client.dataframe.update("account", df, id_column="accountid", clear_nulls=True)