根据非唯一列熊猫创建字典

时间:2019-05-23 02:39:53

标签: python-3.x pandas dictionary

我找到了这个答案Convert a Pandas DataFrame to a dictionary ,几乎可以在以下情况下使用,但我将解释为什么不这样做。

示例

nestedList = [['A', 'B'], ['A', 'C']]
df = pd.DataFrame(nestedList,columns=["1","2"])

返回以下数据框

   1  2
0  A  B
1  A  C

然后我想使用.to_dict()转换为具有键列1和列表列2的字典

sampledict = {"A":["B","C"]}

使用链接的示例,我设置了要用作第1列的键并定向为列表的列

sampledict = df.set_index('1').T.to_dict('list')

返回

{'A': ['C']}

因为一旦您进行转置,“数据框”列就不唯一了,这在用户警告中指出:

UserWarning: DataFrame columns are not unique, some columns will be omitted.

这让我感到困惑,因此我更深入地挖掘并发现Export pandas to dictionary by combining multiple row values,我可以使用以下代码对其进行修改以得到想要的答案:

d = {}
for i in df["1"].unique():
    d[i] = [df["2"][j] for j in df[df["1"]==i].index]

返回哪个

{'A': ['B', 'C']}

哪个很棒,但是我仍然不了解他们的所作所为,因为几乎没有解释。用户能否以更冗长的方式进行解释或撰写?并可能提出更简单的解决方案?

0 个答案:

没有答案