删除最后一行中具有NaN值的数据库列

时间:2020-04-13 00:25:31

标签: python pandas

我正在使用python和pandas存储带有ETF价格日期的每月数据库。

第一列是日期(以及索引),随后的所有列均指基金代码。

我正在尝试删除最后一行中具有NaN值的所有列(已关闭的资金)以减小数据库的大小,但是我正在手动进行操作(一个接一个)。

是否有一段代码可以帮助我实现自动化?

谢谢! :)

数据库如下:

            00.068.305/0001-35  ...  97.543.707/0001-86
DT_COMPTC                       ...                    
2017-01-31           23.068765  ...                 NaN
2017-02-28           23.251754  ...                 NaN
2017-03-31           23.477918  ...                 NaN
2020-01-31           27.181630  ...                 NaN
2020-02-28           27.234258  ...                 NaN
2020-03-31           27.258097  ...                 NaN
2020-04-30           27.172798  ...                 NaN

1 个答案:

答案 0 :(得分:-1)

df:

    Ip  Id  cat prob
0   1   ll  0.2 0.10
1   1   ll  1.0 0.45
2   1   12  0.5 NaN
3   2   11  0.3 NaN
4   2   12  0.5 NaN
5   3   10  0.7 0.30
6   3   10  0.5 0.50
7   3   NaN 0.2 NaN

x = df.iloc[[-1]].isnull()

x:

    Ip      Id      cat     prob
7   False   True    False   True

y = df.columns[x.iloc[0]]

y:

Index(['Id', 'prob'], dtype='object')

您现在可以使用

删除列
df.drop(y, axis=1, inplace=True)

df:

Ip  cat
0   1   0.2
1   1   1.0
2   1   0.5
3   2   0.3
4   2   0.5
5   3   0.7
6   3   0.5
7   3   0.2