想象一下,我有一个这样的数据集:
ID birthyear weight
0 619040 1962 0.1231231
1 600161 1963 0.981742
2 25602033 1963 1.3123124
3 624870 1987 10,000
我想得到柱重的平均值,但明显的10000阻碍了实际的平均值。在这种情况下,我不能改变值,但必须解决它,这是我迄今为止所得到的,但很明显,它包括了最后一个值。
avg_num_items = df_cleaned['trans_quantity'].mean()
translist = df_cleaned['trans_quantity'].tolist()
我的数据帧是df_clean,而我实际处理的列是"trans_quantity",那么在处理该值的同时,我如何处理平均值呢?
由于您在标记中添加了SQL,因此在SQL中,您希望在WHERE
子句中排除它:
SELECT AVG(trans_quantity)
FROM your_data_base
WHERE trans_quantity <> 10,000
大熊猫:
avg_num_items = df_cleaned[df_cleaned["trans_quantity"] != 10000]["trans_quantity"].mean()
您也可以将您的值替换为NAN
,并在平均值中跳过它:
avg_num_items = df_cleaned["trans_quantity"].replace(10000, np.nan).mean(skipna=True)
使用panda,确保您有数字数据(10,000
是字符串(,过滤阈值以上的值,并使用平均值:
(pd.to_numeric(df['weight'], errors='coerce')
.loc[lambda x: x<10000]
.mean()
)
输出:0.8057258333333334