-
读取
df = pd.read_csv(‘文件名’,encoding = ‘utf’/‘gbk’/,sep=’\t’) -
查看基本信息
df.info()
df.head()
df.describe()
df.列名.value_counts() -
更改某一列的数据类型(series下)
df.列名.astype(‘str’/‘int’) -
排序
df.sort_values(by = 列名/列表,ascending=True/False)
df.sort_index()索引排序 -
排序赋值(series下)
df[‘rank’]= df.列名.rank(method='average/‘max’/‘min’/‘first’,ascending=False) -
分组统计(pandas下)
df[‘bins’] = pd.cut(df.列名,bins=5/[0,5,10,15,20,100],labels=[‘0-5’,‘5-10’,‘10-15’,‘15-20’,‘20-100’]) -
多重索引
用groupby建多重索引:
df.groupby(分组列表).聚合函数为DataFrame类型,之后可用.loc[一级标签,二级标签]取值
df.groupby(分组列表).聚合函数.列名为Series类型,之后可用[一级标签][二级标签]取值
用set_index建多重索引:
df.sort_values(分组列表).set_index(分组列表)
用reset_index将索引变成列:
df.reset_index() -
groupby
df.groupby(列名)中包含两个类型的数据,第一个是tuple,存储的是索引;第二个是DataFrame,存储的是组内数据。
因此可用以下循环语句对组内数据进行聚合运算:
for i,j in df.groupby([‘city’,‘education’]):
print(i)
print(j.avg.max()-j.avg.min())
print(j.workYear.value_counts()) -
多表连接
merge:基于键值连接
pandas函数和DataFrame函数
pandas.merge(position,company,left_on=,right_on=,how=inner/outer/left/right)
position.merge(company,left_on=,right_on=,how=inner/outer/left/right)
tips1:当两个表要连接的列名不一致时用left_on和right_on,结果会保留两个列;当一致时用on即可,只保留一列。
join:基于索引连接
DataFrame函数
position.join(company)
tips2:当两个表中存在相同列时会报错
concat: 简单粗暴的左右或上下堆叠
pandas函数
axis=0时为上下堆叠,相同列合并,行数累加,索引重复,主要用于时间数据的堆叠。
axis=1时为左右堆叠,相同列不合并,和join相似
tips3:当使用concat对多个月份数据堆叠时,别忘了修改索引。 -
缺失值
填充缺失值:fillna,Series函数和DataFrame函数
df.city.fillna(‘上海’)
df.fillna(‘上海’)
删除缺失值:dropna,Series函数和DataFrame函数
df.city.dropna()
df.dropna() -
重复行
查找重复行:
df[df.duplicated()]
删除重复行
df.drop_duplicates(keep=‘first’/‘last’) -
文本函数
str:对值里的字符串进行处理,Series函数
df.city.str[1:2]:删除第一个字,[1:-1]删除第一个和最后一个字
df.city.str.replace(原字符,新字符)
str.下有很多函数
来源:CSDN
作者:touteng_code
链接:https://blog.csdn.net/u013078409/article/details/104179464