Python/Pandas:确定系列中的值计数并报告。另请报告「;“南”;计数
在下面的代码中,我想计算特定值在“value”列中出现的次数,并在“count\u Non\u Null”列中报告它。类似地,我想计算null(np.nan)出现的次数,并在“count_Nulls”列中报告 在下面的示例中,值“NFLX”出现一次,“FB”出现2次,“MSFT”出现3次等。np.nan也出现4次 其目的是生成与图像中给出的内容类似的输出Python/Pandas:确定系列中的值计数并报告。另请报告「;“南”;计数,python,pandas,series,Python,Pandas,Series,在下面的代码中,我想计算特定值在“value”列中出现的次数,并在“count\u Non\u Null”列中报告它。类似地,我想计算null(np.nan)出现的次数,并在“count_Nulls”列中报告 在下面的示例中,值“NFLX”出现一次,“FB”出现2次,“MSFT”出现3次等。np.nan也出现4次 其目的是生成与图像中给出的内容类似的输出 尝试使用transform和size来获得非nan值的计数,然后对nan求和,并将它们与loc分配给nan行 设置 import pandas
尝试使用
transform
和size
来获得非nan值的计数,然后对nan求和,并将它们与loc
分配给nan行
设置
import pandas as pd
import numpy as np
data = {
'Value': [
'NFLX','FB','GOOG','VZ',np.nan,'MSFT','AMZN',
np.nan,'MSFT',np.nan,'MSFT','INTC','AAPL',
np.nan,'AMZN','FB'
]
}
df = pd.DataFrame(data) # no need for 'columns' argument
调用具有大小的转换并将NaN相加
df = df.assign(
Count_Non_Null=df.groupby('Value')['Value'].transform('size'), # call .fillna(False) here if you need it
Count_Nulls=np.nan # You can also use False here
)
df.loc[pd.isnull(df['Value']), 'Count_Nulls'] = pd.isnull(df['Value']).sum()
结果
>>> df
Value Count_Non_Null Count_Nulls
0 NFLX 1.0 NaN
1 FB 2.0 NaN
2 GOOG 1.0 NaN
3 VZ 1.0 NaN
4 NaN NaN 4.0
5 MSFT 3.0 NaN
6 AMZN 2.0 NaN
7 NaN NaN 4.0
8 MSFT 3.0 NaN
9 NaN NaN 4.0
10 MSFT 3.0 NaN
11 INTC 1.0 NaN
12 AAPL 1.0 NaN
13 NaN NaN 4.0
14 AMZN 2.0 NaN
15 FB 2.0 NaN
谢谢你,托马斯!!您给出的解决方案会产生预期的结果。
>>> df
Value Count_Non_Null Count_Nulls
0 NFLX 1.0 NaN
1 FB 2.0 NaN
2 GOOG 1.0 NaN
3 VZ 1.0 NaN
4 NaN NaN 4.0
5 MSFT 3.0 NaN
6 AMZN 2.0 NaN
7 NaN NaN 4.0
8 MSFT 3.0 NaN
9 NaN NaN 4.0
10 MSFT 3.0 NaN
11 INTC 1.0 NaN
12 AAPL 1.0 NaN
13 NaN NaN 4.0
14 AMZN 2.0 NaN
15 FB 2.0 NaN