2024-06-09 05:29:35 发布
网友
我正在尝试从以下数据帧中筛选出数据:
我想解析列名,对于type1中匹配的行的每个值-我想得到值
所以我首先需要字典中Name列的值1。 然后对于这个dictionary1的每个值-如果该值与作为dictionary2的Type1列的值匹配,则获取作为dictionary3的value列的值
有人能帮我写python代码吗
预期产量:
对于Type1中名称匹配的每个值,获取Value1
你可以这样做:
import pandas as pd df = pd.DataFrame({'type1':['a','a','a','a','b','b','b','b','b','c','c','c','d','d'],'value':['q','w','e','r','t','y','u','i','o','p','a','s','d','f']}) df.groupby('type1').agg(list).to_dict('index') {'a': {'value': ['q', 'w', 'e', 'r']}, 'b': {'value': ['t', 'y', 'u', 'i', 'o']}, 'c': {'value': ['p', 'a', 's']}, 'd': {'value': ['d', 'f']}}
假设您的数据保存在数据框中:
extracted = {} for k in df.name: values = [] for i, value in enumerate(df.type1): if value == k: values.append(df.type2[i]) extracted[k] = values
您可以使用列表理解在一行中提取数据:
{k:[df.type2[i] for i, value in enumerate(df.type1) if value==k] for k in df.name}
两者都产生:
{'a': ['q', 'w', 'e', 'r'], 'b': ['t', 'y', 'u', 'i', 'o'], 'c': ['p', 'a', 's'], 'd': ['d', 'f']}
您还可以将dict中的值设为如下数据帧:
{k:df.type2[df.type1==k] for k in df.name}
由此产生:
{'a': 0 q 1 w 2 e 3 r Name: type2, dtype: object, 'b': 4 t 5 y 6 u 7 i 8 o Name: type2, dtype: object, 'c': 9 p 10 a 11 s Name: type2, dtype: object, 'd': 12 d 13 f Name: type2, dtype: object}
你可以这样做:
假设您的数据保存在数据框中:
您可以使用列表理解在一行中提取数据:
两者都产生:
您还可以将dict中的值设为如下数据帧:
由此产生:
相关问题 更多 >
编程相关推荐