参考资料:
python 判断为空nan, null
python 一行代码 将小数变成百分数 - 知乎
python数据拼接: pd.concat - boobo - 博客园
Python列表解析式和生成表达式 - 知乎
Python dataframe数据 按某一列的值拆分成多个小的dataframe数据博客
统计缺失情况:
df.isnull().sum() --- 统计每列含有多少行数的null值,返回行数
df.isnull().sum()/df.shape[0] --- 统计缺失的比例
df.isnull().any() --- 统计所有列是否有null值,返回true\false,true代表含有null值
df.isnull().any().value_counts() --- 统计含有null的列和不含null的列分别的数量
df.isnull().T.any()
df.isnull().T.any().value_counts()--- 统计含有null的行和不含null行分别的数量
分组后统计信息:
df.groupby('year_month').count() --- 计数
df.groupby('year_month').sum() --- 求和
df.groupby('year_month').describe() --- 描述性统计
df.groupby('year_month')['sku'].nunique() --- 去重数量统计
df.groupby('year_month').agg({'df_1':'sum','df_2':'max'}).reset_index() --- 不同字段个性化聚合
pd.DataFrame的用法:可以将series转为dataframe:
pd.DataFrame(df.groupby('year_month').count())
条件筛选
df[(df['sku'] == 0 )] --- 等于
df[(df['sku']!= 0 )] --- 不等于
df = df[(df['sku'].isin(list(set(df_1['sku']))))] --- df的sku值需要满足在df_1的sku去重值里面
列处理
df['column_1_2'] = df['column_1'].map(str) + df['column_2'].map(str) 合并列
df['is_same_column'] =np.where(df['column_1']==df['column_2'],'same','different')
df['lenghth'] = [len(i) for i in df['sku_id']] --- 列表表达式
关联:
pd.merge(df_1,df_2,left_on='df_1_key',right_on='df_2_key',how='left') ?
? 个性化输出:
print(i+'的比例:'+str('{:.2%}'.format(rate))) --- 循环输出百分比
print(pd.concat([df_1.groupby('year_month')['sku'].nunique(),
df_2.groupby('year_month')['sku'].nunique(),
df_3.groupby('year_month')['sku'].nunique()],axis=1)) --- 横向拼接
df.to_excel('本地df.xlsx',index=False) --- 输出成excel
|