df['年龄段'] = pd.cut(df.年龄,bins = [0,30,40,50,100]) mean1 = df.groupby('年龄段')['白细胞计数'].mean() mean1什么意思
时间: 2023-06-17 20:05:45 浏览: 227
这段代码是针对一个数据框(df)的操作,首先将数据框中的'年龄'这一列按照给定的分割点(0, 30, 40, 50, 100)进行切分(分为四个区间),并在数据框中新增一列'年龄段',表示每个样本所在的年龄段。
接着,对'年龄段'这一列进行分组(groupby)操作,统计每个年龄段中'白细胞计数'这一列的平均值(mean)。其中,mean1是一个Series对象,索引为不同的年龄段,值为对应年龄段内'白细胞计数'的平均值。这个操作的目的是探究不同年龄段中白细胞计数的差异。
相关问题
1.现有一个职业人群体检数据testdata.xls文件,请完成以下数据分析任务。 (1)用read_excel()方法读取testdata.xls文件到变量df中。 (2)用df.dtypes查看每列的数据类型。 (3)用df.info()查看表结构。 (4)用isnull().sum()统计各字段空缺值。 (5)用dropna()方法删除全为空的列。 (6)用dropna()方法删除“身份证号”为空的行,并用isnull().sum()再次统计空值。 (7)将“开始从事某工作年份:2009年”中的“年”去掉,并用rename()将列名改为“参加工作时间”。将“体检年份:2009年”中的“年”去掉。 (8)用dropna()方法删除“参加工作时间”、“体检年份”为空的行. (9)用astype()方法将“参加工作时间”、“体检年份”数据类型改为int64. (10)增加一列“工龄”,工龄=体检年份-参加工作时间;新增一列“年龄” (11)用groupby()统计不同性别的白细胞计数均值,并用plot()方法绘制柱状图 (12)统计不同年龄段的白细胞计数,并绘制柱状图。年龄划分:小于等于30岁,31~40岁,41~50岁,大于50岁
以下是对应的Python代码:
```python
# (1)读取testdata.xls文件到变量df中
import pandas as pd
df = pd.read_excel('testdata.xls')
# (2)查看每列的数据类型
print(df.dtypes)
# (3)查看表结构
print(df.info())
# (4)统计各字段空缺值
print(df.isnull().sum())
# (5)删除全为空的列
df.dropna(axis=1, how='all', inplace=True)
# (6)删除“身份证号”为空的行,并再次统计空值
df.dropna(subset=['身份证号'], inplace=True)
print(df.isnull().sum())
# (7)将“开始从事某工作年份:2009年”中的“年”去掉,并将列名改为“参加工作时间”;
# 将“体检年份:2009年”中的“年”去掉
df.rename(columns={'开始从事某工作年份:2009年': '参加工作时间', '体检年份:2009年': '体检年份'}, inplace=True)
df['参加工作时间'] = df['参加工作时间'].str.replace('年', '')
df['体检年份'] = df['体检年份'].str.replace('年', '')
# (8)删除“参加工作时间”、“体检年份”为空的行
df.dropna(subset=['参加工作时间', '体检年份'], inplace=True)
# (9)将“参加工作时间”、“体检年份”数据类型改为int64
df['参加工作时间'] = df['参加工作时间'].astype('int64')
df['体检年份'] = df['体检年份'].astype('int64')
# (10)增加一列“工龄”,工龄=体检年份-参加工作时间;新增一列“年龄”
df['工龄'] = df['体检年份'] - df['参加工作时间']
df['年龄'] = df['出生年'].apply(lambda x: 2021 - x)
# (11)统计不同性别的白细胞计数均值,并用plot()方法绘制柱状图
df.groupby('性别')['白细胞计数'].mean().plot(kind='bar')
# (12)统计不同年龄段的白细胞计数,并绘制柱状图。年龄划分:小于等于30岁,31~40岁,41~50岁,大于50岁
bins = [0, 30, 40, 50, 100]
labels = ['<=30', '31~40', '41~50', '>50']
df['年龄段'] = pd.cut(df['年龄'], bins=bins, labels=labels)
df.groupby('年龄段')['白细胞计数'].mean().plot(kind='bar')
```
1.现有一个职业人群体检数据testdata.xls文件,请完成以下数据分析任务。 (1)用read_excel()方法读取testdata.xls文件到变量df中。 (2)用df.dtypes查看每列的数据类型。 (3)用df.info()查看表结构。 (4)用isnull().sum()统计各字段空缺值。 (5)用dropna()方法删除全为空的列。 (6)用dropna()方法删除“身份证号”为空的行,并用isnull().sum()再次统计空值。 (7)将“开始从事某工作年份:2009年”中的“年”去掉,将“体检年份:2009年”中的“年”去掉,并用rename()将列名改为“参加工作时间”。 (8)用dropna()方法删除“参加工作时间”、“体检年份”为空的行. (9)用astype()方法将“参加工作时间”、“体检年份”数据类型改为int64. (10)增加一列“工龄”,工龄=体检年份-参加工作时间;新增一列“年龄” (11)用groupby()统计不同性别的白细胞计数均值,并用plot()方法绘制柱状图 (12)统计不同年龄段的白细胞计数,并绘制柱状图。年龄划分:小于等于30岁,31~40岁,41~50岁,大于50岁。
```python
# (1) 读取testdata.xls文件到变量df中
import pandas as pd
df = pd.read_excel('testdata.xls')
# (2) 查看每列的数据类型
print(df.dtypes)
# (3) 查看表结构
print(df.info())
# (4) 统计各字段空缺值
print(df.isnull().sum())
# (5) 删除全为空的列
df.dropna(axis=1, how='all', inplace=True)
# (6) 删除“身份证号”为空的行,并再次统计空值
df.dropna(subset=['身份证号'], inplace=True)
print(df.isnull().sum())
# (7) 将“开始从事某工作年份:2009年”中的“年”去掉,将“体检年份:2009年”中的“年”去掉,并用rename()将列名改为“参加工作时间”
df['开始从事某工作年份:2009年'] = df['开始从事某工作年份:2009年'].str.replace('年', '').astype('int64')
df['体检年份:2009年'] = df['体检年份:2009年'].str.replace('年', '').astype('int64')
df.rename(columns={'开始从事某工作年份:2009年': '参加工作时间'}, inplace=True)
# (8) 删除“参加工作时间”、“体检年份”为空的行
df.dropna(subset=['参加工作时间', '体检年份:2009年'], inplace=True)
# (9) 将“参加工作时间”、“体检年份”数据类型改为int64
df['参加工作时间'] = df['参加工作时间'].astype('int64')
df['体检年份:2009年'] = df['体检年份:2009年'].astype('int64')
# (10) 增加一列“工龄”,工龄=体检年份-参加工作时间;新增一列“年龄”
df['工龄'] = df['体检年份:2009年'] - df['参加工作时间']
df['年龄'] = 2009 - df['出生年份']
# (11) 统计不同性别的白细胞计数均值,并用plot()方法绘制柱状图
df.groupby('性别')['白细胞计数'].mean().plot(kind='bar')
# (12) 统计不同年龄段的白细胞计数,并绘制柱状图。年龄划分:小于等于30岁,31~40岁,41~50岁,大于50岁。
bins = [0, 30, 40, 50, df['年龄'].max()]
labels = ['<=30', '31~40', '41~50', '>50']
df['年龄段'] = pd.cut(df['年龄'], bins=bins, labels=labels)
df.groupby('年龄段')['白细胞计数'].mean().plot(kind='bar')
```
阅读全文