xlsxwriter 只能指定行或者列写
openpyxl 只能逐单元写
判断某列是否有NaN
df['col'].isnull().any()
df['col'].isnull().all()
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)