首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从dataframe获取字典

从dataframe获取字典
EN

Stack Overflow用户
提问于 2022-09-22 05:23:13
回答 2查看 29关注 0票数 1

我有如下所示的数据:

代码语言:javascript
复制
df = pd.DataFrame({
'Aapl': [12, 5, 8],
'Fs': [18, 12, 8],
'Bmw': [6, 18, 12],
'Year': ['2020', '2025', '2030']

})

我想要一本字典,如:

代码语言:javascript
复制
d={'2020':[12,18,16],
   '2025':[5,12,18],
   '2030':[8,8,12]
  }

我无法发展整个逻辑:

代码语言:javascript
复制
lst = [list(item.values()) for item in df.to_dict().values()]
dic={}
for items in lst:
    for i in items[-1]:
        dic[i]=#2000 will hold all the 0th values of other lists and so on 

有没有更容易使用熊猫的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-22 05:24:47

Year转换为index,转置,然后在dict理解中创建列表:

代码语言:javascript
复制
d = {k: list(v) for k, v in df.set_index('Year').T.items()}
print (d)
{'2020': [12, 18, 6], '2025': [5, 12, 18], '2030': [8, 8, 12]}

或者使用DataFrame.agg

代码语言:javascript
复制
d = df.set_index('Year').agg(list, axis=1).to_dict()
print (d)
{'2020': [12, 18, 6], '2025': [5, 12, 18], '2030': [8, 8, 12]}
票数 1
EN

Stack Overflow用户

发布于 2022-09-22 05:29:13

试试这个:

代码语言:javascript
复制
import pandas as pd
data = {'Name': ['Ankit', 'Amit',
                 'Aishwarya', 'Priyanka'],
        'Age': [21, 19, 20, 18],
        'Stream': ['Math', 'Commerce',
                   'Arts', 'Biology'],
        'Percentage': [88, 92, 95, 70]}
  
# Convert the dictionary into DataFrame
df = pd.DataFrame(data, columns=['Name', 'Age', 
                                 'Stream', 'Percentage'])
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73809677

复制
相关文章

相似问题

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