如何实现selectlike函数

2024-10-02 00:20:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中得到了一个数据集,它的结构如下

Tree Species  number of trunks
------------------------------
Acer rubrum          1
Quercus bicolor      1
Quercus bicolor      1
aabbccdd             0

我有一个问题,我能实现一个类似

Select sum(number of trunks)
from trees.data['Number of Trunks']
where x = trees.data["Tree Species"]
group by trees.data["Tree Species"]

在python中?x是一个包含五个元素的数组:

x = array(['Acer rubrum', 'Acer saccharum', 'Acer saccharinum',
'Quercus rubra', 'Quercus bicolor'], dtype='<U16')

我要做的是将x中的每个元素映射到树.数据[“Tree Species”]并计算树干数之和,它应该返回

array = (sum_num(Acer rubrum), sum_num(Acer saccharum), sum_num(Acer saccharinum), 
sum_num(Acer Quercus rubra), sum_num(Quercus bicolor))

Tags: of数据tree元素numberdatatreesnum
2条回答

你想看看Python熊猫吗。这样你就可以做

df.groupby('Tree Species')['Number of Trunks'].sum()

请注意这里df是您在数据帧中读取的变量名。我建议你也看看pandas和lambda函数。你知道吗

你可以这样做:

import pandas as pd 
df = pd.DataFrame()
tree_species = ["Acer rubrum", "Quercus bicolor", "Quercus bicolor", "aabbccdd"]
no_of_trunks = [1,1,1,0]
df["Tree Species"] = tree_species
df["Number of Trunks"] = no_of_trunks
df.groupby('Tree Species').sum() #This will create a pandas dataframe
df.groupby('Tree Species')['Number of Trunks'].sum() #This will create a pandas series. 

你也可以通过使用字典来做同样的事情:

tree_species = ["Acer rubrum", "Quercus bicolor", "Quercus bicolor", "aabbccdd"]
no_of_trunks = [1,1,1,0]    
d = {}
for key, trunk in zip(tree_species, no_of_trunks):
    if not key in d.keys():
        d[key] = 0
    d[key] += trunk         
print(d)

相关问题 更多 >

    热门问题