如何找到字典中每个键的最小/最大值?以及如何找到每个键的值数量?

问题描述 投票:0回答:1

首先,我导入以下文本文件:

 ['butterfly' '2' '2' '3']
 ['butterfly' '3' '3' '3']
 ['dragonfly' '4' '1' '1']
 ['dragonfly' '5' '2' '1']
 ['dragonfly' '6' '3' '1']
 ['cat' '4' '4' '2']
 ['cat' '5' '5' '2']
 ['cat' '6' '6' '2']
 ['cat' '7' '8' '3']
 ['elephant' '8' '9' '3']
 ['elephant' '9' '10' '4']
 ['elephant' '10' '10' '4']
 ['camel' '10' '11' '5']
 ['camel' '11' '6' '5']
 ['camel' '12' '5' '6']
 ['camel' '12' '3' '6']
 ['bear' '13' '13' '7']
 ['bear' '5' '15' '7']
 ['bear' '4' '10' '5']
 ['bear' '6' '9' '2']
 ['bear' '15' '13' '1']
 ['dog' '1' '3' '9']
 ['dog' '2' '12' '8']
 ['dog' '3' '10' '1']
 ['dog' '4' '8' '1']]

第一列是动物,第二列是其在字段中的x位置,第三列是其y位置,第四列是其z位置。 我想找到最小/最大的Z值以及每种动物的数量,并将所有这些信息保存在新词典中。到目前为止,我已经尝试过:

df = pd.read_csv('ALL_ANIMALS.txt',
                 delim_whitespace=True,
                 names={'animal':str,'x':int,'y':int,'z':int}) #load in file
Animal_Data = {}

Animal_Data['Max_Depths'] = {k : max(df['z']) for k in df['animal']} #find max value (depth) for each key (animal)
Animal_Data['Min_Depths'] = {k : min(df['z']) for k in df['animal']} #find min value (depth) for each key (animal)

Animal_Data['number_of_each_animal'] = {k : len(df['z']) for k in df['animal']} #find number of each animal

print(Animal_Data)

但是,我为每只动物得到的最小值/最大值是整个词典的总体最小值/最大值,而动物数是词典中的动物总数。像这样:

{'Max_Depths': {'cat': 9, 'elephant': 9, 'camel': 9, 'bear': 9, 'dog': 9}, 'Min_Depths': {'cat': 1, 'elephant': 1, 'camel': 1, 'bear': 1, 'dog': 1}, 'number_of_each_animal': {'cat': 20, 'elephant': 20, 'camel': 20, 'bear': 20, 'dog': 20}}

任何想法,我如何解决我的代码以从文本文件中获取每只动物的最小/最大和数量?谢谢!!

python pandas dictionary minimum dictionary-comprehension
1个回答
0
投票

df['z']返回all

© www.soinside.com 2019 - 2024. All rights reserved.