我正在嘗試根據讀取的記錄數創建一個動態熊貓資料框,其中每條記錄都是一列。
我的邏輯是應用“for i=1 in N”的回圈,其中 N 是用于創建列的讀取資料(字串格式)。這對我來說不太合適,我嘗試了一些替代方案,但效果不佳。我只得到讀取的最后一條記錄。
我提出一個建議:
def funct_example(client):
documents = [ v_document ]
poller = client.begin_analyze_entities(documents)
result = poller.result()
docs = [doc for doc in result if not doc.is_error]
i = 1
df_final = pd.DataFrame()
for idx, doc in enumerate(docs):
for entity in doc.entities:
for i in doc.entities:
d = {'col' i : [format(entity.text)]}
df = pd.DataFrame(data=d)
df_final = pd.concat([df_final, df], axis=1)
display(df_final)
i = i 1
funct_example(client)
您推薦什么替代方案?
解決方案:
for idx, doc in enumerate(docs):
for entity in doc.entities:
name = 'col' str(i)
d = {name : [format(entity.text)]}
df = pd.DataFrame(data=d)
df_final = pd.concat([df_final, df], axis=1)
i = i 1
display(df_final)
謝謝!
uj5u.com熱心網友回復:
這是因為 df 在每次迭代后都會重新分配。
這是實作它的一種方法
在 for 回圈開始之前宣告一個空的 DF
df_final = pd.DataFrame()
在創建 df df = pd.DataFrame(data=d) 后添加
df_final = pd.concat([df_final, df], axis=1)
這附加到您的 df_final
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/484905.html
上一篇:寫一個Sigma方程
下一篇:從函式回傳兩個物件
