Kor*_*gay 4 python max nan pandas
例如:
0 1
0 87.0 NaN
1 NaN 99.0
2 NaN NaN
3 NaN NaN
4 NaN 66.0
5 NaN NaN
6 NaN 77.0
7 NaN NaN
8 NaN NaN
9 88.0 NaN
Run Code Online (Sandbox Code Playgroud)
我的预期输出是:[False, True]因为87是第一个!NaN值但不是列中的最大值0.99然而,这是第一个!NaN值,并且确实是该列中的最大值.
groupby与first(可能不是100%可靠)
df.groupby([1]*len(df)).first()==df.max()
Out[89]:
0 1
1 False True
Run Code Online (Sandbox Code Playgroud)
bfill或者使用bfill(通过列中的向后值填充任何NaN值,然后第一行后面的第一行bfill不是NaN值)
df.bfill().iloc[0]==df.max()
Out[94]:
0 False
1 True
dtype: bool
Run Code Online (Sandbox Code Playgroud)
stackdf.stack().reset_index(level=1).drop_duplicates('level_1').set_index('level_1')[0]==df.max()
Out[102]:
level_1
0 False
1 True
dtype: bool
Run Code Online (Sandbox Code Playgroud)
idxmax用first_valid_indexdf.idxmax()==df.apply(pd.Series.first_valid_index)
Out[105]:
0 False
1 True
dtype: bool
Run Code Online (Sandbox Code Playgroud)
idxmaxwithisnadf.notna().idxmax() == df.idxmax()
Out[107]:
0 False
1 True
dtype: bool
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |