为 i = n 创建动态数据帧的问题
Problem with create dataframe dynamic for i = n
我正在尝试根据读取的记录数创建动态 pandas 数据框,其中每条记录都是一列。
我的逻辑是应用循环,其中“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)
谢谢!
这是因为每次迭代后都会重新分配 df。
这是实现它的一种方法
在 for 循环开始之前声明一个空 DF
df_final = pd.DataFrame()
创建 df 后添加 df = pd.DataFrame(data=d)
df_final = pd.concat([df_final, df], axis=1)
这会附加到您的 df_final
我正在尝试根据读取的记录数创建动态 pandas 数据框,其中每条记录都是一列。
我的逻辑是应用循环,其中“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)
谢谢!
这是因为每次迭代后都会重新分配 df。
这是实现它的一种方法
在 for 循环开始之前声明一个空 DF
df_final = pd.DataFrame()
创建 df 后添加 df = pd.DataFrame(data=d)
df_final = pd.concat([df_final, df], axis=1)
这会附加到您的 df_final