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 İ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 İ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
|
Tablonun şema adı (ör. |
|
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 |
|
|
Boşsa |
Ö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
|
Tablonun şema adı (ör. |
|
ids
Gerekli
|
Silinecek kayıt GUID'leri serisi. |
|
use_bulk_delete
|
Default value: True
|
Döndürülenler
| Tür | Description |
|---|---|
|
str,
|
BulkDelete aracılığıyla birden çok kaydı silerken BulkDelete iş kimliğini silme; |
Özel durumlar
| Tür | Description |
|---|---|
|
Pandas |
|
|
|
Ö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
|
Tablonun şema adı (ör. |
|
record_id
|
Belirli bir kaydı getirmek için isteğe bağlı GUID. Yok ise, birden çok kaydı sorgular. Default value: None
|
|
select
|
Alınacak öznitelik mantıksal adlarının isteğe bağlı listesi. Default value: None
|
|
filter
|
İsteğe bağlı OData filtre dizesi. Sütun adları tam küçük harf mantıksal adları kullanmalıdır. Default value: None
|
|
orderby
|
Sıralama ölçütü olarak isteğe bağlı öznitelik listesi. Default value: None
|
|
top
|
İsteğe bağlı olarak döndürülecek kayıt sayısı üst sınırı. Default value: None
|
|
expand
|
Genişletilmesi için isteğe bağlı gezinti özellikleri listesi (büyük/küçük harfe duyarlı). Default value: None
|
|
page_size
|
Sayfalandırma için sayfa başına isteğe bağlı kayıt sayısı. Default value: None
|
|
count
|
ise Default value: False
|
|
include_annotations
|
Üst bilgi (ör. 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ş |
Ö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
|
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 |
Ö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
|
Tablonun şema adı (ör. |
|
changes
Gerekli
|
Her satırın bir kayıt GUID'sini ve güncelleştirilecek alanları içerdiği DataFrame. |
|
id_column
Gerekli
|
Kayıt GUID'lerini içeren DataFrame sütununun adı. |
|
clear_nulls
|
Ne zaman Default value: False
|
Özel durumlar
| Tür | Description |
|---|---|
|
Pandas |
|
|
Boşsa, DataFrame'de bulunmazsa |
Ö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)