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
posted @ 2020-09-09 15:12  P-Z-W  阅读(286)  评论(0编辑  收藏  举报