1

我有很多带有“|”的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

任何帮助将不胜感激。

4

1 回答 1

0

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

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)
于 2020-05-26T09:45:37.480 回答