Pandas 常用数据判空处理参考

xlsxwriter 只能指定行或者列写 
openpyxl  只能逐单元写

判断某列是否有NaN

 df['col'].isnull().any()

判断某列是否全部为NaN 

df['col'].isnull().all()

查看表格哪些列是否全为NaN

 df.isnull().all()

df.isnull.any() 判断dataframe中所有的列是否有空值,若有则该列返回True,没有则该列返回False。

1、找出所有含有空值的行
DataFrame[DataFrame.isnull().T.any()]

2、找出含有空值的特定行和列


DataFrame[DataFrame[[‘column3’,‘column4’]].isnull().T.any()][[‘column3’,‘column4’]]3、代码实例
 

import pandas as pd
import numpy as np

n = np.arange(20, dtype=float).reshape(5,4)
n[0,0] = np.nan 
n[2,3] = np.nan
n[3,2] = np.nan
index = ['index1', 'index2', 'index3', 'index4', 'index5']
columns = ['column1', 'column2', 'column3', 'column4']
df = pd.DataFrame(data=n, index=index, columns=columns)

print(df)

print(df[df.isnull().T.any()])

print(df[df[['column3','column4']].isnull().T.any()][['column3','column4']])


4、为什么加转置
非转置:df.isnull().any(),得到的每一列求any()计算的结果,输出为列的Series。

转置:df.isnull().T.any(),得到的每一行求any()计算的结果,输出为行的Series。

列名重置有三种方法:
1、使用columns重命名:

import pandas as pd
data=pd.read_csv('./data/job_info/job_info.csv',encoding='gbk')
data.columns =['公司','岗位','工作地点','工资','发布日期']

 

2.对指定列重命名可以使用rename()方法。默认是使用新的列名新建一个dataframe

import pandas as pd
data=pd.read_csv('./data/job_info/job_info.csv',encoding='gbk')
data=data.rename(columns={'字节跳动':'公司','数据产品经理':'岗位','北京':'工作地点','2-3.5万/月':'工资','09-03':'发布日期'})

3.pandas0.21重命名方法做了更改:rename()和set_axis()方法:

rename(),新增了参数axis,它的值为可以columns或者1,当参数为columns或1时,用于修改列名:

import pandas as pd
data=pd.read_csv('./data/job_info/job_info.csv',encoding='gbk')
data=data.rename(columns={'字节跳动':'公司','数据产品经理':'岗位','北京':'工作地点','2-3.5万/月':'工资','09-03':'发布日期

 

rename()是对指定列名做更改,set_axis则是可以重新设置列名,inplace参数用于标记是否在原来的dataframe修改列名:

import pandas as pd
data=pd.read_csv('./data/job_info/job_info.csv',encoding='gbk')
data.set_axis(['公司','岗位','工作地点','工资','发布日期'],axis='columns',inplace=False)

你可能感兴趣的:(python,pandas,python,开发语言)