微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从数据框中创建键的字典:column_name和value:python列中的唯一值

我正在尝试创建一个key:value对的字典,其中key是数据帧的列名,value是一个包含该列中所有唯一值的列表.最终我希望能够从中过滤出key_value对根据条件决定.到目前为止,这是我能够做到的:

for col in col_list[1:]:
    _list = []
    _list.append(footwear_data[col].unique())
    list_name = ''.join([str(col),'_list'])

product_list = ['shoe','footwear']
color_list = []
size_list = []

这里product,color,size都是列名称,并且dict键应相应命名,例如color_list等.
最终,我将需要访问字典中的每个key:value_list.
预期产量:

KEY              VALUE
color_list :    ["red","blue","black"]
size_list:  ["9","XL","32","10 inches"]

有人可以帮我一下吗?数据快照已附加.

data_frame

解决方法:

使用这样的DataFrame:

import pandas as pd
df = pd.DataFrame([["Women", "Slip on", 7, "Black", "Clarks"], ["Women", "Slip on", 8, "brown", "Clarcks"], ["Women", "Slip on", 7, "Blue", "Clarks"]], columns= ["Category", "Sub Category", "Size", "Color", "Brand"])

print(df)

输出

  Category Sub Category  Size  Color    Brand
0    Women      Slip on     7  Black   Clarks
1    Women      Slip on     8  brown  Clarcks
2    Women      Slip on     7   Blue   Clarks

您可以在映射DataFrame的列时将DataFrame转换为dict并创建新的dict,例如以下示例:

new_dict = {"color_list": list(df["Color"]), "size_list": list(df["Size"])}
# OR:
#new_dict = {"color_list": [k for k in df["Color"]], "size_list": [k for k in df["Size"]]}

print(new_dict)

输出

{'color_list': ['Black', 'brown', 'Blue'], 'size_list': [7, 8, 7]}

为了拥有唯一的值,可以像下面的示例一样使用set:

new_dict = {"color_list": list(set(df["Color"])), "size_list": list(set(df["Size"]))}
print(new_dict)

输出

{'color_list': ['brown', 'Blue', 'Black'], 'size_list': [8, 7]}

或者,就像@Ami Tavory在他的回答中说的那样,为了获得DataFrame中的整个唯一键和值,您可以简单地执行以下操作:

new_dict = {k:list(df[k].unique()) for k in df.columns}
print(new_dict)

输出

{'Brand': ['Clarks', 'Clarcks'],
 'Category': ['Women'],
 'Color': ['Black', 'brown', 'Blue'],
 'Size': [7, 8],
 'Sub Category': ['Slip on']}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐