你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

数据分析案例1

2021/12/29 22:11:03
import pandas as pd
import numpy as np
df = pd.read_excel('testdata.xls')
df.head()
df.dtypes
df.isna().sum()
df.isna()
del df['细胞其它值']  # df.drop()
df
df.dropna(subset = ['身份证号'], inplace = True)  #dropna()对数据结构中有值为空的行进行删除,subset:在特定列对缺失值处理
df.isna().sum()  #显示缺失值的个数
def time(x):
    y = str(x).strip()[0:4]
    #有的数据的年份是小数,去掉
    if float(y) >= 1000:
        return int(y)
df.rename(columns = {'开始从事某工作年份': '参加工作时间'}, inplace = True)
df.dropna(subset = ['参加工作时间'],inplace = True)
df['参加工作时间'] = df['参加工作时间'].apply(lambda x:time(x)) #apply():当一个函数的参数存在于一个元组或者一个字典中时,用来间接的调用这个函数,并将元组或者字典中的参数按照顺序传递给参数
# lambda 参数:操作(参数)
df.dropna(subset = ['体检年份'], inplace = True)
#df.dropna(subset = ['身份证号'], inplace = True)
df['体检年份'] = df['体检年份'].apply(lambda x :int(str(x)[0:4]))
df['工龄'] = df['体检年份'] - df['参加工作时间']
df['年龄'] = df['体检年份'] - df['身份证号'].apply(lambda x :int(str(x)[4:8]))
df.head()
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'simhei' #matplotlib默认不支持中文字符,需设置
df.groupby('性别')['白细胞计数'].mean().plot.bar()  #groupby()分组分析
plt.show()
def tongji(x):
    if x <= 30:
        return '小于或等于30岁'
    elif x > 30 and x <= 40:
        return '31岁至40岁'
    elif x > 40 and x <= 50:
        return '41岁至50岁'
    else:
        return '50岁以上'
df['年龄段'] = df.apply(lambda x : tongji(x['年龄']), axis = 1)
df.groupby('年龄段')['白细胞计数'].mean().plot.bar()
plt.show()