我有一个csv数据集,其中有一个列名为“事件类型”,另一个列名为“单位数量”。使用Python和Pandas,我试图找到当事件类型的值为111时“单位数”的平均值。(它被多次找到)。我尝试过多种搜索Pandas的方法,但无法找到如何在一个庞大的数据集中找到它。问题是这样的:
到达归类为“111 -建筑物火灾”的事故现场的单位平均数量与到达归类为“651 -烟雾恐慌、烟味"的事故现场的单位平均数量之比是多少?
bzzcjhmw1#
ML-Nielsen价值观特定答案的替代答案:df.groupby('Types of Incidents')['Number of units'].mean()这将提供所有Incident Types的平均值Number of units。如果需要,您也可以指定多个列。可重现示例:
df.groupby('Types of Incidents')['Number of units'].mean()
Incident Types
Number of units
data = { "Incident_Type": [111, 380, 390, 111, 651, 651], "Number_of_units": [50, 40, 45, 99, 12, 13] } data = pd.DataFrame(data) data Incident_Type Number_of_units 0 111 50 1 380 40 2 390 45 3 111 99 4 651 12 5 651 13 data.groupby('Incident_Type')['Number_of_units'].mean() Incident_Type 111 74.5 380 40.0 390 45.0 651 12.5 Name: Number_of_units, dtype: float64
现在,如果您希望找到单元的比率,则需要将此结果存储为 Dataframe 。
average_units = data.groupby('Incident_Type')['Number_of_units'].mean().to_frame() average_units = average_units.reset_index() average_units Incident_Type Number_of_units 0 111 74.5 1 380 40.0 2 390 45.0 3 651 12.5
因此,我们将结果存储在名为average_units的 Dataframe 中。
average_units
incident1_units = average_units[average_units['Incident_Type']==111]['Number_of_units'].values[0] incident2_units = average_units[average_units['Incident_Type']==651]['Number_of_units'].values[0] incident1_units / incident2_units 5.96
pobjuy322#
如果我没理解错的话,你可能需要先选择正确的行,然后计算平均值。
df.loc[df['Types of Incidents']==111, 'Number of units'].mean()
这将给予Number of units的平均值,其中条件df['Types of Incidents']==111为真。
df['Types of Incidents']==111
2条答案
按热度按时间bzzcjhmw1#
ML-Nielsen价值观特定答案的替代答案:
df.groupby('Types of Incidents')['Number of units'].mean()
这将提供所有
Incident Types
的平均值Number of units
。如果需要,您也可以指定多个列。可重现示例:
现在,如果您希望找到单元的比率,则需要将此结果存储为 Dataframe 。
因此,我们将结果存储在名为
average_units
的 Dataframe 中。pobjuy322#
如果我没理解错的话,你可能需要先选择正确的行,然后计算平均值。
这将给予
Number of units
的平均值,其中条件df['Types of Incidents']==111
为真。