pandas 我们如何计算大于一个值和小于一个值的项目?

rryofs0p  于 2023-01-19  发布在  其他
关注(0)|答案(1)|浏览(244)

我有这个DF。

import pandas as pd
import scipy.optimize as sco 

pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

data = [['ATTICA',1,2,590,680],['ATTICA',1,2,800,1080],['AVON',14,2,950,1250],['AVON',15,3,500,870],['AVON',20,4,1350,1700]]
df = pd.DataFrame(data, columns=['cities','min_workers','max_workers','min_minutes','max_minutes'])
df

df['Non_HT_Outages'] = (df['min_workers'] < 15).groupby(df['cities']).transform('count')
df['HT_Outages'] = (df['min_workers'] >= 15).groupby(df['cities']).transform('count')
df

我正在尝试计数名为'min_workers'的列中的项目,如果〈15,则放入列'Non-HT',但如果〉=15,则放入列'HT'。我的计数似乎不正确。

blmhpbnm

blmhpbnm1#

如果您在转换中将count更改为sum,它将工作。
这是因为(df['min_workers'] < 15).groupby(df['cities'])为每个城市创建了一个布尔列表,满足条件时使用True条目,不满足条件时使用False条目。
count给出了所有条目的计数,包括真和假。sum只计算真条目(将真和假视为1和0,并将它们相加)。

相关问题