Python:将从每一行提取数据的字典

时间:2018-05-02 18:00:23

标签: python pandas dictionary

我试图创建一个字典,它会为我提供插入键值的每个州的值。这是我的代码:

sat_partic = {'State': 'Participation'}

但这只是给了我在大括号中输入的变量。

感谢您的帮助和建议。

        State   Participation   
0       Alabama     5%  
1       Alaska     38%  
2       Arizona    30%  
3       Arkansas   20%  
4       California 14%  

4 个答案:

答案 0 :(得分:2)

完整答案:

d = df.set_index('State')['Participation'].to_dict()

但是,在许多情况下,这不是必需的,因为您可以使用具有类似功能的pd.Series.get

例如,您可以使用:

d = df.set_index('State')['Participation']

然后使用d.get('Alabama')等来检索参与。

答案 1 :(得分:1)

字典使用键值对。所以你可以使用状态作为键(每个状态只出现一次,对吗?)和百分比作为值:

sat_partic = {"Alabama": 5, "Alaska": 38, "Arizona": 30, ...}

答案 2 :(得分:1)

我不完全确定下面的代码是否能解决您的目的。但是,我走了。您可以使用namedtuple

from collections import namedtuple

columns = 'State Participation'

STAT_PARTIC = namedtuple('stat_partic', columns)

print (STAT_PARTIC._fields)
input_data = ['Alabama 5%', 'Alaska 38%', 'Arizona 30%', 'Arkansas 20%',
              'California 14%']

list_all_data = []

for line in input_data:
    data = line.split()
    stat_part = STAT_PARTIC(*data)
    list_all_data.append(stat_part)

print (list_all_data[0].State)
print (list_all_data[0].Participation)

答案 3 :(得分:1)

你能表现出理想的输出吗?我不确定我是否理解得很好。但...

为什么不使用pandas库并将状态名称更改为索引?

import pandas as pd

ser1 = pd.Series(['5%','38%','30%','20%','14%'],['Alabama','Alaska','Arizona','Arkansas','California'])

ser1[:]

输出:

Alabama        5%
Alaska        38%
Arizona       30%
Arkansas      20%
California    14%
dtype: object