我正在试着通过功能来理解Pandas 群体
import pandas as pd
data=[['a',3],['a',3],['b',1],['a',0],['b',0]]
df=pd.DataFrame(data,columns=['Room','Value'])
print(df)
sum_df=df.groupby(['Room']).agg(
sumValue =('Value','sum'),
nonBlankOccasion =('Value', lambda x: x>0).count())
).reset_index()
print(sum_df)
我正在试着得到空间,和(值)和非零值的数字场合的结果. 但是我不能用上面的代码得到正确的答案.它给了我按房间统计所有记录的数量
Room sumValue nonBlankOccation
0 a 6 3
1 b 1 2
但是,如果我更改为
sum_df=df.groupby(['Room']).agg(
sumValue =('Value','sum'),
nonBlankOccasion =('Value', lambda x:(x>0).sum())
).reset_index()
它给出了正确的结果.
Room sumValue nonBlankOccation
0 a 6 2
1 b 1 1
有人能帮我理解为什么这里是sum()而不是count()吗? 非常感谢!
ELAC
我在group by函数中try 了sum()和count().我期待count()给我正确的答案,然而sum()是正确的.我想知道为什么.