我正在使用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
答案 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