import pandas as pd
import numpy as np
dates = pd.date_range("20190101", periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)),
index=dates, columns=["A", "B", "C", "D"])
print(df)
# A B C D
# 2019-01-01 0 1 2 3
# 2019-01-02 4 5 6 7
# 2019-01-03 8 9 10 11
# 2019-01-04 12 13 14 15
# 2019-01-05 16 17 18 19
# 2019-01-06 20 21 22 23
print("============根据索引修改指定的某个值==============")
df.iloc[0, 1] = np.nan
df.iloc[1, 2] = np.nan
print(df)
# A B C D
# 2019-01-01 0 NaN 2.0 3
# 2019-01-02 4 5.0 NaN 7
# 2019-01-03 8 9.0 10.0 11
# 2019-01-04 12 13.0 14.0 15
# 2019-01-05 16 17.0 18.0 19
# 2019-01-06 20 21.0 22.0 23
print("===========丢弃NaN的行或列============")
# axis=0 代表行 , how= {'any','all'},'any' 只要有一个值为NaN就丢掉,
# all所有值都为NaN才丢掉
print(df.dropna(axis=0 , how= 'any'))
# A B C D
# 2019-01-03 8 9.0 10.0 11
# 2019-01-04 12 13.0 14.0 15
# 2019-01-05 16 17.0 18.0 19
# 2019-01-06 20 21.0 22.0 23
print("===========填充NaN值============")
# 使用指定的值替换NaN
print(df.fillna(value=0))
print("**************检查是否有确实数据 **************")
print("========检查df中所有位置是否为NaN=========")
print(df.isnull())
# A B C D
# 2019-01-01 False True False False
# 2019-01-02 False False True False
# 2019-01-03 False False False False
# 2019-01-04 False False False False
# 2019-01-05 False False False False
# 2019-01-06 False False False False
print("======检查df中是否至少有一个位置是否为NaN======")
print(np.any(df.isnull()) == True)
# True