pandas数据处理
21、读取本地EXCEL数据
import pandas as pd
df = pd.read_excel('pandas.xlsx')
22、查看df数据前5行
df.head()
createTime | education | salary | |
---|---|---|---|
0 | 2020-03-16 11:30:18 | 本科 | 20k-35k |
1 | 2020-03-16 10:58:48 | 本科 | 20k-40k |
2 | 2020-03-16 10:46:39 | 不限 | 20k-35k |
3 | 2020-03-16 10:45:44 | 本科 | 13k-20k |
4 | 2020-03-16 10:20:41 | 本科 | 10k-20k |
...... | ...... | ...... | ...... |
23、将salary列数据转换为最大值与最小值的平均值
import re
def func(df):
lst = df['salary'].split('-')
smin = int(lst[0].strip('k'))
smax = int(lst[1].strip('k'))
df['salary'] = int((smin + smax) / 2*1000)
return df
df = df.apply(func,axis=1)
24、将数据根据学历进行分组并计算平均薪资
df.groupby('education').mean()
25、将createTime列时间转换为月-日
for i in range(len(df)):
df.ix[i,0] = df.ix[i,0].to_pydatetime().strftime("%m-%d")
df.head()
26、查看索引、数据类型和内存信息
df.info()
27、查看数值型列的汇总统计
df.describe()
28、新增一列根据salary将数据分为三组
bins = [0,5000,20000,50000]
group_names = ['低','中','高']
df['categories'] = pd.cut(df['salary'],bins,labels=group_names)
29、按照salary列对数据降序排列
df.sort_values('salary',ascending=False)
30、取出第33行数据
df.loc[32]
31、计算salary列的中位数
np.median(df['salary'])
32、绘制薪资水平频率分布直方图
df.salary.plot(kind='hist')
33、绘制薪资水平密度曲线
df.salary.plot(kind='kde',xlim=(0,80000))
34、删除最后一列categories
del df['categories']
35、将df的第一列与第二列合并为新的一列
df['test'] = df['education'] + df['createTime']
36、将education列与salary列合并为新的一列
df["test1"] = df["salary"].map(str) + df["education"]
37、计算salary最大值与最小值之差
df[['salary']].apply(lambda x:x.max() - x.min())
38、将第一行与最后一行拼接
pd.concat([df[:1],df[-2:-1]])
39、将第8行数据添加至末尾
df.append(df.iloc[7])
40、查看每列的数据类型
df.dtypes