要 dict 的数据框,其中一列是键,另一列是值 [重复]

Posted

技术标签:

【中文标题】要 dict 的数据框,其中一列是键,另一列是值 [重复]【英文标题】:dataframe to dict such that one column is the key and the other is the value [duplicate] 【发布时间】:2019-05-25 06:10:50 【问题描述】:

我有数据框

    ID   A   B   C
0   p    1   3   2
1   q    4   3   2
2   r    4   0   9  

我想创建一个字典,其中 ID 是键,B 是值,所以它将是:

d["q"] = 3 , d["r"] = 0

最好的方法是什么?

它与假设的重复不同,因为我想要每个键的单个值而不是列表

【问题讨论】:

【参考方案1】:
df = pd.DataFrame([['p',1,3,2],['q',4,3,2],['r',4,0,9]], columns=['ID','A','B','C'])
df=df[['ID','A','B','C']]

df

  ID  A  B  C
0  p  1  3  2
1  q  4  3  2
2  r  4  0  9

your_dict = dict(zip(df.ID, df.B))

your_dict
 'p': 3, 'q': 3, 'r': 0

【讨论】:

【参考方案2】:

类似这样的:

In [27]: df
Out[27]: 
  ID  A  B  C
0  p  1  3  2
1  q  4  3  2
2  r  4  0  9

In [30]: df.set_index('ID',inplace=True)
In [31]: df
Out[31]: 
    A  B  C
ID         
p   1  3  2
q   4  3  2
r   4  0  9

In [33]: df.to_dict()['B']
Out[33]: 'p': 3, 'q': 3, 'r': 0

【讨论】:

以上是关于要 dict 的数据框,其中一列是键,另一列是值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将三列合并为两列,一列是分类的,另一列是数字的? (蟒蛇熊猫)

两列上的 DENSE_RANK,其中一列是不同的值,另一列是重复的

根据火花数据框中另一列的值查找列的最大值?

SQL - 插入两列,一列来自表,另一列是常量

Datagridview_2 组合框值在 C# 中无效

如果另一列是 varchar,char 有用吗?