计数值赋值给新列在大熊猫数据帧
问题描述:
我有一个数据帧是这样的:计数值赋值给新列在大熊猫数据帧
A B C D E F G H
0 a None 123 None Nan None 2 aa,12asd
1 None 1234 456 None Ee5 tie 233 a,123,sd
2 None absc 789 Nan Nan abs Abc asd34vfd
我想创建一个列“我”,这是本质上的列数在适用的情况下计算A到H,忽略适用情况。输出会是这样的:
I
4
6
5
我已经试过np.isnan,pd.isnull,。所有(),.bool,.ANY,.empty,.item,.count- NONE正在工作。
任何人都可以展示如何做到这一点?
答
假设我们有以下数据框:
In [76]: df
Out[76]:
A B C D E F G H
0 a None 123 None Nan None 2 aa,12asd
1 None 1234 456 None Ee5 tie 233 a,123,sd
2 None absc 789 Nan Nan abs Abc asd34vfd
所有None
和Nan
值是字符串:
In [81]: df.isnull()
Out[81]:
A B C D E F G H
0 False False False False False False False False
1 False False False False False False False False
2 False False False False False False False False
,我们可以做到以下几点:
In [77]: df['I'] = df.replace(['None','Nan'], [np.nan, np.nan]).notnull().sum(1)
In [78]: df
Out[78]:
A B C D E F G H I
0 a None 123 None Nan None 2 aa,12asd 4
1 None 1234 456 None Ee5 tie 233 a,123,sd 6
2 None absc 789 Nan Nan abs Abc asd34vfd 5
如果您已经有None
和NaN
(而不是字符串):
In [87]: df.isnull()
Out[87]:
A B C D E F G H
0 False True False True True True False False
1 True False False True False False False False
2 True False False True True False False False
In [88]: df['I'] = df.notnull().sum(1)
In [89]: df
Out[89]:
A B C D E F G H I
0 a None 123 NaN NaN None 2 aa,12asd 4
1 None 1234 456 NaN Ee5 tie 233 a,123,sd 6
2 None absc 789 NaN NaN abs Abc asd34vfd 5