我的数据如下:
current_rate current_balance cure_g4 char_value_aa503 \
38 5.49 10403.65 NaN -9829.0
61 1.24 825530.40 NaN NaN
62 1.34 201467.68 NaN -9999998.0
63 3.24 39907.76 NaN 4363.0
64 1.75 114109.41 NaN NaN
65 1.59 131513.37 NaN NaN
66 3.25 62882.63 NaN 1302.0
这是一个名为base_varlist4
的数据框,所有列都在名为varlist4
的列表中。我想获取列的最大值,但看起来NaN
值正在阻碍。
奇怪的是,char_value_aa503
出现了正确的MAX值。但是,这是另一栏:
In [85]: base_varlist4['total_imp_pma']
Out[85]:
38 0.2
61 0.0
62 0.0
63 NaN
64 0.0
65 0.0
66 NaN
71 8.4
72 117.7
100 NaN
101 NaN
106 NaN
122 0.0
123 NaN
125 NaN
这是我正在使用的代码。
output_max_temp=base_varlist4.groupby('obs_date').max(skipna=True)
#reset obs_date to be treated as a column rather than an index
output_max_temp.reset_index()
#reshape temporary output to have 2 columns corresponding to variable and value
output_max=pd.melt(output_max_temp, id_vars='obs_date', value_vars=varlist4)
这是我的代码。即使我明确说明skipna=True
,我的输出仍然如下所示:
In [86]: output_max
Out[86]:
obs_date variable value
0 NaN reserve_l6 107270
1 NaN reserve_l5 107270
2 NaN reserve_l4 107270
3 NaN reserve_l3 107270
4 NaN reserve_l2 107270
5 NaN reserve_l12 107270
6 NaN reserve_l11 107270
7 NaN reserve_l1 107270
8 NaN reserve_l0 107270
9 NaN remaining_term 420
10 NaN possdate NaN
11 NaN pd_pit 1
12 NaN original_valuation NaN
13 NaN new_arrears 62.3255
14 NaN ndspcii_l1 92
15 NaN reserve_l7 107270
16 NaN reserve_l10 107270
17 NaN reserve_l8 107270
18 NaN pd_ttc_floor 1
19 NaN reserve_limit 107270
20 NaN ui 147.163
21 NaN total_imp_pma NaN
22 NaN pd_ttc 1
23 NaN pd_pit_moc 1
24 NaN indexed_val 2.1058e+06
25 NaN ii 5805.3
26 NaN elbe_amt 34033.7
27 NaN ead_pit 999483
28 NaN reserve_l9 107270
29 NaN el_for_rc 34033.7
.. ... ... ...
52 NaN balance_l1 NaN
53 NaN balance_l0 1.01384e+06
54 NaN balance 99,994.97
55 NaN ave_ndspcii 52.5
56 NaN ave_e1b10 898.5
57 NaN arrsbal_absl12 2010.37
58 NaN age_of_loan 333
59 NaN balance_l9 NaN
60 NaN max_e1b08 6
61 NaN billing_amount 7495.05
62 NaN btl_prop_arrears_2 0
63 NaN max_e1a09 8
64 NaN marked_ltv_nsa 96.7986
65 NaN latest_valuation 1.95e+06
66 NaN indexed_val_nsa 2.1058e+06
67 NaN income 2.94642e+06
68 NaN e1a10 999
69 NaN e1a09 8
70 NaN def_pm 0
71 NaN def_g4 1
72 NaN def_bk 1
73 NaN def_180 1
74 NaN current_rate 5.49
75 NaN current_balance 1.01384e+06
76 NaN cure_g4 NaN
77 NaN char_value_aa503 186413
78 NaN btl_prop_arrears_4 0
79 NaN btl_prop_arrears_3 0
80 NaN btl_prop_arrears_1 0
81 NaN lgd_dt_ec 0.657523
如您所见,total_imp_pma
显示为NaN,即使char_value_aa503
正常。我不知道为什么 - 我也检查了源数据,并且没有错误的单元格或其他......
有解决方法吗?