Python:如果列具有键值对

时间:2018-06-01 15:57:49

标签: python pandas csv

我是python的新手。 我需要读取具有各种列的csv文件。 在csv文件中,一列包含键和值对等数据。 使用pandas如何从csv中提取该列的键和值。

例如:列名:fruit

该栏目中的数据:

{ ""apple": "1,2,3,4", "orange":"5,6,7,8"}

如何从csv文件中获取水果列的密钥及其值? 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

要阅读.csv,我使用pandas。

import pandas as pd
fruit_df = pd.read('directory_where_csv_is_saved/file_name.csv')

我会通过首先从“Fruit”列中的字典中获取密钥并将该组密钥转换为可迭代列表来解压缩字典列“Fruit”来扩展数据框以容纳更多列。

key_set = set()
for i in range(len(fruit_df)):
    for key in fruit_df['Fruit'][i].keys():
        if key not in key_set:
            key_set.add(key)
        else:
            pass
key_set_list = list(key_set)

然后解压缩字典:

for i in range(len(key_set_list)):
    fruit_df[key_set_list[i]] = [d.get(key_set_list[i]) for d in fruit_df['Fruit']]

您的数据框应该更宽(更多列),每个新列都是字典键,以及适用行中的相应值。