pandas 常用函数-汇总

创建新DataFrame

df=pd.DataFrame()

DataFrame 大小

df.shape

把单元格内容转成list

df[column]=df[column].str.split(" \n",expand=False)

索引

把索引建为新列

df["column_name"]=df.index

更新筛选后的索引

df.index = range(len(df))

重设索引

result = result.reset_index()
result = result.reset_index(drop=True)

多重索引

取出第一级索引 :get_level_values(0)

行两层索引变成一行

level0 = result.columns.get_level_values(0)
level1 = result.columns.get_level_values(1)
result.columns = level0 + '_' + level1

两行索引交换位置

result= result.swaplevel(axis=1)

列相关

输出列名

df.columns 列名列表概述
df.columns.values 全量列名

修改列名

df_new=df.rename(columns={'原列名1': '新列名1','原列名2': '新列名2'})
df_new=df.rename(columns=lambda x:x.replace('列名部分字段',''), inplace=True)
转小写
df_new.columns = df.columns.map(lambda x: x.lower())
去除前后空格
df_new.columns = df.columns.map(lambda x: x.strip())

根据列名返回列序号

int=df.columns.get_loc(列名) #从1 开始

无列名选列

df.columns[序号] 返回列名

多行列名读取

df =pd.read_excel(path,header=(0,1))

字段类型

dtype
.str.isdigit() 判断是否数值

输出行数

行数:df.shape[0]
列数:df.shape[1]
矩阵大小:np.shape(df)
shape 数据维度

去重

df.drop_duplicates()

删除行列
删除空行

df.dropna()
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

删除指定行
删除指定列

df = df.drop(columns=['Unnamed: 0'])

排序

df.sort_values()
df.sort_index(axis=0) #列名降序
df.sort_index(axis=1) #列名升序

图中文乱码

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

显示全部的行列

pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

int与str转化

df[column]=df[column].apply(str)
df[column]=df[column].apply(int)

去\n \r

df[column]=df[column].apply(lambda x:x.replace('\n', '').replace('\r', ''))

多值替换

df.replace({"a1":"new1","a2":"new2"}, inplace = True)

列里不同的值数量

df.column.nunique()
df.nunique()

列值截取

df[column]=df[column].str[0:2]

空值填充

mydf['列名']=mydf['列名'].fillna(0)
table2 = table2.fillna(value=0)

数据格式调整
百分号2位小数

pt1['人数占比']=(pt1['人数']/pt1['人数'].sum()).map('{:.2%}'.format)

两位小数

pt1['单价']=(pt1['销售额']/pt1['件数']).map('{:.2f}'.format)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。