(1)构造如图1所示的数据框,并在此基础上构建如图2所示的含缺失值的数据框。
import pandas as pd
import numpy as np
#运用元组创建一个panda
data = {
"A": [0,4,8,12,16,20],
"B": [1,5,9,13,17,21],
"C": [2,6,10,14,18,22],
"D": [3,7,11,15,19,23],
}
df = pd.DataFrame(data, index=["2022-12-20", "2022-12-21", "2022-12-22", "2022-12-23","2022-12-24","2022-12-25"])
print(df)
#修改数据,出现None
print()
print("构建如图2所示的含缺失值的数据框:")
df.iloc[0,1] = np.nan
df.iloc[1,2] = np.nan
print(df)
#删除含None的行,注意axis的值,此处形成的是新对象,不改变df
print()
print("删除掉有NaN的行:")
#df1 = df.dropna(axis=0,how='any')
#print(df1)
print(df.dropna(axis=0,how='any'))
#删除含None的列,注意axis的值,此处形成的是新对象,不改变df
print()
print("删除掉有NaN的列:")
#df2 = df.dropna(axis=0,how='any')
#print(df2)
print(df.dropna(axis=1,how='any'))
#替换None的值
print()
print("替换NaN值为0:")
#df3 = df.fillna(0)
#print(df3)
print(df.fillna(0))
#检测数据中是否存在None
print()
print("检测数据中是否存在None:")
#df4 = df.isnull().values.any()
#print(df4)
print(df.isnull().values.any())
#检测B列是否有缺失数据
print()
print("检测B列是否有缺失数据:")
#df5 = df['B'].isnull().any()
#print(df5)
print(df['B'].isnull().any())
#此处先删除不存在数据缺陷的列,最后返回剩余列(暂未找到更好的方法,故不做解释)
print()
print("返回所有含缺失值的列属性名:")
for i in range(65,69):
i = chr(i)
x = df[i].isnull().any()
if df[i].isnull().any() == False:
df.drop(i, inplace = True, axis=1)
print(df.columns)