【发布时间】:2020-12-30 09:18:39
【问题描述】:
我试图弄清楚如何在我的数据框中输出我的 First_Name 列的频率;每行。到目前为止,我成功地做到了,但我也想知道如何计算每行的 NaN 值和 Non-NaN 值。
下面是一个包含两列的数据框:First_Name 和 Favorite_Color。 我想看看我是否可以获得 First_Name 列的计数。当我输出代码时,我只能得到非 NaN 值的计数。有没有办法同时包含 NaN 值的计数并将其添加到数据框的一部分?
import pandas as pd
d =
{
'First_Name': ["Jared", "Lily", "Sarah", "Bill", "Bill", "Alfred", None],
'Favorite_Color': ["Blue", "Blue", "Pink", "Red", "Yellow", "Orange", "Red"]
}
df = pd.DataFrame(data=d)
df['countNames'] = df.groupby('First_Name')['First_Name'].transform('count')
print(df)
我希望得到 NaN 和非 NaN 值的计数,但我只得到了非 NaN 值的计数。
编辑:谢谢大家!
我真的很喜欢阅读每个人的答案,看到这么多不同的解决方案来解决这个问题真的很有趣!我认为 SH-SF 的答案很好,因为它更容易理解,但确实需要使用 numpy 库来回答。
【问题讨论】: