返回

python—在数据帧中动态创建列名的问题

发布时间:2022-09-03 13:57:43 246
# node.js

我正在尝试动态创建熊猫数据帧。到目前为止,我对在dataframe中捕获数据很在行,但不知道列的名称。

我还希望列的名称基于我在函数中读取的记录附带的数据的“类别”,但我总是得到最后一个。

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 relation in doc.entity_relations:
        for role in relation.roles:
            name = str([format(entity.category)]) + str(i)  # <---- THIS LINE ALWAYS IS THE LAST REGISTER

            d = {name : "'{}' with entity '{}'".format(role.name, role.entity.text)} # <---THIS IS OK                 
            df = pd.DataFrame(data=d, index=[0])                
            df_final = pd.concat([df_final, df], axis=1)
            i = i + 1
            display(df_final)
return(df_final)
df_new_2 = funct_example(client)

我尝试在创建dataframe语句和concat函数之间添加一个额外的循环,如下所示:

for col in df.columns:
    name = str([format(entity.category)]) + str(i)  
    df = df.rename(columns={col: name })  

但是最后一个类别仍然出现在列名中......

我该如何解决?

从已经非常感谢了。

解决方案:

    for idx, doc in enumerate(docs):      

    for relation in doc.entity_relations:

        for role in relation.roles:

            name = 'Relation_' + format(relation.relation_type) + '_' + str(i)  

            d = {name : "'{}' with entity '{}'".format(role.name, role.entity.text)} 

            df = pd.DataFrame(data=d, index=[0])

            df_final = pd.concat([df_final, df], axis=1)

            i = i + 1

            display(df_final)

return(df_final)

df_relations = funct_example(client)

问候!!:D

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像