【发布时间】:2022-11-29 11:37:13
【问题描述】:
我有一张桌子
| date | James | Jamie | John | Allysia | Jean |
|---|---|---|---|---|---|
| 2022-01-01 | NaN | 6 | 5 | 4 | 3 |
| 2022-01-02 | 7 | 6 | 7 | NaN | 5 |
| names | groupings |
|---|---|
| James | guy |
| John | guy |
| Jamie | girl |
| Allysia | girl |
| Jean | girl |
进入
| date | James | Jamie | John | Allysia | Jean | girl | guy |
|---|---|---|---|---|---|---|---|
| 2022-01-01 | NaN | 6 | 5 | 4 | 3 | 5 | 5 |
| 2022-01-02 | 7 | 6 | 7 | NaN | 5 | 5.5 | 7 |
阈值= >3
我想创建一个按男孩/女孩分数分组的新列,其中得分高于阈值,并在忽略 NaN 和不符合阈值的分数的同时得到他们的平均值。
我不知道如何用 nan 替换低于阈值的分数。
我试着做一个分组,让他们进入一个列表,并用平均值创建新行。
groupingseries = groupings.groupby(['grouping'])['names'].apply(list)
for k,s in zip(groupingseries.keys(),groupingseries):
try:
its='"'+',"'.join(s)+'"'
df[k]=df[s].mean()
except:
print('not in item')
不确定为什么结果会为女孩和男孩返回 NaN。 请帮忙。
【问题讨论】:
标签: python