我只想在列Dates
等于Oct-16
时计算得分1的均值:
我最初的尝试是:
import pandas as pd
import numpy as np
import os
dataFrame = pd.read_csv("test.csv")
for date in dataFrame["Dates"]:
if date == "Oct-16":
print(date)##Just checking
print(dataFrame["Score 1"].mean())
但我的结果是整个专栏Score 1
我尝试的另一件事是手动告诉它计算平均值的指数:
dataFrame["Score 1"].iloc[0:2].mean()
但理想情况下,如果Dates == "Oct-16"
,我想找到一种方法。
答案 0 :(得分:3)
迭代这些行并没有利用熊猫的优势。如果您想根据其他列的值对列执行某些操作,可以使用.loc[]
:
dataFrame.loc[dataFrame['Dates'] == 'Oct-16', 'Score 1']
.loc[]
的第一部分使用指定的条件(dataFrame['Dates'] == 'Oct-16'
)选择所需的行。第二部分指定所需的列(Score 1
)。然后,如果你想得到均值,你可以把.mean()
放在最后:
dataFrame.loc[dataFrame['Dates'] == 'Oct-16', 'Score 1'].mean()
答案 1 :(得分:0)
import pandas as pd
import numpy as np
import os
dataFrame = pd.read_csv("test.csv")
dates = dataFrame["Dates"]
score1s = dataFrame["Score 1"]
result = []
for i in range(0,len(dates)):
if dates[i] == "Oct-16":
result.append(score1s[i])
print(result.mean())
答案 2 :(得分:0)
所有日期的平均值
dataframe.groupby('Dates').['Score 1'].mean()