Python 如何根据特定的行值计算值在列中的次数?

Python 如何根据特定的行值计算值在列中的次数?,python,pandas,Python,Pandas,我有这个数据框: Outlook Temperature PlayTennis Value 0 Sunny 60 Yes 1 1 Sunny 70 Yes 1 2 Sunny 40 No 1 3 Overcast 40 No

我有这个数据框:

     Outlook     Temperature    PlayTennis   Value

0     Sunny           60           Yes         1

1     Sunny           70           Yes         1

2     Sunny           40            No         1

3  Overcast           40            No         1

4  Overcast           60           Yes         1

5  Overcast           50           Yes         1

6  Overcast           70           Yes         1

7  Overcast           80           Yes         1

8      Rain           65            No         1

9      Rain           70           Yes         1
我想得到这个

Outlook    Yes    No

Sunny       2      1

Overcast    4      1

Rain        1      1

不确定根据晴天/阴天/下雨情况使用什么命令来计算是和否

forecasts = [
    ["sunny", "yes"],
    ["sunny", "yes"],
    ["sunny", "no"],
    ["overcast", "no"],
    # more forecasts ...
]
myForecasts = {}
for forecast in forecasts:
    if forecast[0] not in myForecasts:
        myForecasts[forecast[0]] = [0, 0]

    if forecast[1] == "yes":
        myForecasts[forecast[0]][0] += 1

    else:
        myForecasts[forecast[0]][1] += 1

print("Outlook | Yes | No")
for myForecast in myForecasts:
    print("{} | {} | {}".format(myForecast, myForecasts[myForecast][0], myForecasts[myForecast][1]))
我希望这对你有所帮助。下次,请告诉我们你已经做了家庭作业。

怎么样

df.groupby('Outlook').apply(lambda g: g['PlayTennis'].value_counts())
或者,根据您的具体规格:

df.groupby('Outlook').apply(lambda g: g['PlayTennis'].value_counts()).unstack(1)
甚至更短:

df.groupby('Outlook')['PlayTennis'].value_counts().unstack(1)

您可以使用
pd.pivot\u表
来解决此问题

In [88]: pd.pivot_table(df, index='Outlook', cols='PlayTennis',
                         values='Value', aggfunc='sum') 
Out[88]:
PlayTennis  No  Yes
Outlook
Overcast     1    4
Rain         1    1
Sunny        1    2
此外,您还可以
groupby
'Outlook',playneting'
上获取数据并使用
unstack('playneting')


你能帮我处理熊猫吗?对不起,我没有处理熊猫的经验;你到底需要什么帮助?欢迎来到Stack Overflow!这里通常期望您展示您编写的代码或描述您为解决问题所做的研究。正如您的问题目前编写的那样,它听起来像是对代码的请求。你有没有尝试过与我们分享?
In [87]: df.groupby(['Outlook', 'PlayTennis']).size().unstack('PlayTennis')
Out[87]:
PlayTennis  No  Yes
Outlook
Overcast     1    4
Rain         1    1
Sunny        1    2