在python中将列includes:=value拆分为多个列

2024-10-01 15:45:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有许多带有“|”分隔符的csv文件,其中一列包括键和值(但不包括json)。我需要读取所有这些csv文件,将该列拆分为多个列(作为列名和给定值的键),并将输出保存在一个大的csv文件中

其中一个csv文件类似于:

id   | name|message
12478|  A  |{img_type:=png,key_id:=f235, client_status:=active, request_status:=open}
12598|  B  |{img_type:=none,address_id:=c156, client_status:=active, request_status:=closed}

输出将是:

id   |name| Img_type|Key_id|address_id|Client_status|Request_status
12478|  A | png     |f235  |NULL      |active       | open
12598|  B | none    |NULL  |c156      |active       | closed

任何帮助都将不胜感激


Tags: 文件csvnameclientnoneidimgpng
1条回答
网友
1楼 · 发布于 2024-10-01 15:45:41

你可以利用熊猫来解决你的问题

import pandas as pd

def split_to_dict(row):
    row_splitted = row[1:-1].split(',')
    return dict(
        [
            i.strip().split(':=') for i in row_splitted
        ]
    )

df = pd.read_csv('your_file.csv', delimiter="|")
new_df = df.message.apply(split_to_dict).apply(pandas.Series)

final = pd.concat([df, new_df], axis=1)
final = final.drop(columns=['message'])
final.to_csv('your_splitted_file.csv', sep="|", index=False)

相关问题 更多 >

    热门问题