首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将两个pandas列转换为一个字典,但将同一第一列(key)的所有值合并为一个key?

如何将两个pandas列转换为一个字典,但将同一第一列(key)的所有值合并为一个key?
EN

Stack Overflow用户
提问于 2018-07-29 01:04:14
回答 1查看 1.5K关注 0票数 0

很抱歉标题很混乱,基本上我有一个Pandas数据帧,我想把两列转换成一个字典(一个是键,另一个是值)。但是,当我使用to_dict()时,问题是因为我在第一列中有许多行具有相同的值,所以它只使用其中的一行,并且我没有获得所有数据。有没有办法解决这个问题?

我试着递归地解决这个问题,但我一直没能弄明白。

编辑:添加代码

代码语言:javascript
运行
复制
data = pd.read_csv('file')
datalist = []
data2list = []


for i in range(len(data.index)):
    datalist.append(data.loc[i, 'column1'])

for i in range(len(data.index)):
        data2list.append(data.loc[i, 'column2'])

现在,datalist拥有来自column1的所有值,我希望这些值成为关键字,而column2拥有我希望成为字典中的值的所有值。

然而,问题是,数据帧看起来像这样:

代码语言:javascript
运行
复制
   column1   column2
0  key1      value1
1  key1      value2
2  key2      value3
3  key2      value4

我希望字典看起来像这样:

代码语言:javascript
运行
复制
dict = {"key1": [value1, value2], "key2": [value3, value4]}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-29 01:11:08

Python字典不支持重复键。您可以通过调整第一列中的值来解决此问题,这样键就不会重复。或者,您可以为第一列中的每个唯一键创建一个列表字典。由于您的数据位于Pandas DataFrame中,因此您可以这样做:

代码语言:javascript
运行
复制
import pandas as pd

# Your data
data = pd.DataFrame({'column1':['key1','key1','key2','key2'],
       'column2':['value1','value2','value3','value3']})

# Grouped dict
data_dict = data.groupby('column1').column2.apply(list).to_dict()       
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51573494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档