我试图弄清楚如何在数据框中输出First_Name列的频率;每行。到目前为止,我已经成功地做到了这一点,但我也想知道如何计算每行的NaN值和Non-NaN值。
以下是具有两列的数据框:First_Name和Favorite_Color。我想看看是否可以统计First_Name列。输出代码时,我只能得到Non-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)
Run Code Online (Sandbox Code Playgroud)
我希望能同时获得NaN和非NaN值的计数,但是我只能得到非NaN值的计数。
我真的很喜欢阅读大家的答案,看到这么多不同的解决方案真的很有趣!我认为SH-SF的答案很好,因为它更容易理解,但确实需要使用numpy库作为答案。