Python 将dataframe转换为列具有重复值且字典值为列表的字典
我想得到这样一个结果 对于此数据帧:Python 将dataframe转换为列具有重复值且字典值为列表的字典,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我想得到这样一个结果 对于此数据帧: Name Val A 1 A 2 B 1 B 3 B 4 我想要一本像{'a':[1,2],'B';[1,3,4]} 我将有两个这样的数据帧,我的目标是实现每个键的值的差异。与键“B”类似,其他数据帧的值可以为1,5 我不想使用循环,因为数据帧将是巨大的 我试着用 df.set_index(key).to_dict()[value coln]但这只为每个键提供一个值 我尝
Name Val
A 1
A 2
B 1
B 3
B 4
我想要一本像{'a':[1,2],'B';[1,3,4]}
我将有两个这样的数据帧,我的目标是实现每个键的值的差异。与键“B”类似,其他数据帧的值可以为1,5
我不想使用循环,因为数据帧将是巨大的
我试着用
df.set_index(key).to_dict()[value coln]
但这只为每个键提供一个值
我尝试在datafram中使用group by,这将涵盖您需要的内容: In [22]: out = {} In [23]: for i in df["Name"].tolist(): ...: out[i] = df[df["Name"]==i]["Val"].tolist() ...: In [24]: out Out[24]: {'A': [1, 2], 'B': [1, 3, 4]} In[22]:out={} 在[23]中:对于df[“Name”]中的i.tolist(): …:out[i]=df[df[“Name”]==i][“Val”].tolist() ...: In[24]:out
Out[24]:{apos;A':[1,2],'B':[1,3,4]}这将满足您的需要: In [22]: out = {} In [23]: for i in df["Name"].tolist(): ...: out[i] = df[df["Name"]==i]["Val"].tolist() ...: In [24]: out Out[24]: {'A': [1, 2], 'B': [1, 3, 4]} In[22]:out={} 在[23]中:对于df[“Name”]中的i.tolist(): …:out[i]=df[df[“Name”]==i][“Val”].tolist() ...: In[24]:out Out[24]:{apos;A':[1,2],'B':[1,3,4]}您可以尝试:
ddict = {
'A':[],
'B':[]
}
按列筛选数据并从另一列返回值。将每个字典键设置为这些结果:
ddict['A'] = list(df[df['Name'] == 'A']['Val'].values)
ddict['B'] = list(df[df['Name'] == 'B']['Val'].values)
输出:
{
'A': ['1', '2'],
'B': ['1', '3', '4']
}
编辑:或者,如果要遍历所有键:
for key in ddict.keys():
ddict[key] = list(df[df['Name'] == key]['Val'].values)
您可以尝试:
ddict = {
'A':[],
'B':[]
}
按列筛选数据并从另一列返回值。将每个字典键设置为这些结果:
ddict['A'] = list(df[df['Name'] == 'A']['Val'].values)
ddict['B'] = list(df[df['Name'] == 'B']['Val'].values)
输出:
{
'A': ['1', '2'],
'B': ['1', '3', '4']
}
编辑:或者,如果要遍历所有键:
for key in ddict.keys():
ddict[key] = list(df[df['Name'] == key]['Val'].values)
这就是我要找的亚当。现在我只想看看我怎么知道这些字典值的不同这就是我要找的Adam。现在我只想看看我怎么知道这些字典的值有什么不同