我是這里的新手。英語不是我的母語,所以請原諒任何語法錯誤。我正在嘗試根據以下資料計算金發女郎的平均年齡df:
np.random.seed(0)
df = pd.DataFrame({'Age':[18, 21, 28, 19, 23, 22, 18, 24, 25, 20],
'Hair colour':['Blonde', 'Brown', 'Black', 'Blonde', 'Blonde', 'Black','Brown', 'Brown', 'Black', 'Black'],
'Length (in cm)':np.random.normal(175, 10, 10).round(1),
'Weight (in kg)':np.random.normal(70, 5, 10).round(1)},
index = ['Leon', 'Mirta', 'Nathan', 'Linda', 'Bandar', 'Violeta', 'Noah', 'Niji', 'Lucy', 'Mark'],)
我需要得到一個號碼。
首先,我嘗試使用“df.divide”。
# 1. Here we import pandas
import pandas as pd
# 2. Here we import numpy
import numpy as np
ans_3 = df({'Age'}).divide(df({'Hair colour': ['Blonde']}))
但是,我得到了這個 TypeError: 'DataFrame' object is not callable。
我應該怎么做才能獲得適當的結果?
uj5u.com熱心網友回復:
您收到此錯誤是因為您使用df(..). 這是呼叫函式的python語法。你可能想要df[..]。
要回答您的問題:
(
df # given your data
[df["Hair colour"] == "Blonde"] # only look at blonde people
["Age"] # for those in the Age column
.mean() # and compute the mean
)
uj5u.com熱心網友回復:
跑步:
df[df['Hair colour'] == 'Blonde'].Age.mean()
細節:
df['Hair colour'] == 'Blonde'- 生成一個布爾型別的Series,說明當前行是否有金發。df[…]- 獲取滿足上述條件的行。Age- 從上面的行中只取Age列。mean()- 計算平均年齡。
uj5u.com熱心網友回復:
正如已經指出的那樣,由于您使用括號來呼叫可呼叫物件作為示例函式,因此會出現錯誤。相反,您應該使用用于切片和選擇資料的括號。
作為建議,我建議您使用 groupby 方法來檢查人口統計資料。在這里,如果你想知道你的可觀察值的平均值,你可以做頭發顏色的函式:
df.groupby("Hair colour").mean()
這將回傳您以下
| 頭發的顏色 | 年齡 | 長度(厘米) | 重量(公斤) |
|---|---|---|---|
| 黑色的 | 23.75 | 175.775 | 70.7 |
| 金發女郎 | 20.0 | 194.5666666666667 | 71.16666666666667 |
| 棕色的 | 21.0 | 179.0 | 74.60000000000001 |
因此,您可以看到金發女郎的平均年齡是 20 歲。
如果要檢索此特定值,可以執行以下操作:
df.groupby("Hair colour").mean()["Age"]["Blonde"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/432182.html
標籤:Python python-3.x 熊猫 数据框 系列
