Board logo

标题: Pandas的进阶(二) [打印本页]

作者: admin    时间: 2023-9-4 11:07     标题: Pandas的进阶(二)

###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['总成绩'] = df.sum(axis=1) #按行求和 #print(df) #print("-" * 10) print("各行的总成绩:") df = df['总成绩'] print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各行的总成绩: 李大杰 314.0 Jacky 308.0 zhuohua wu 358.5 Name: 总成绩, dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['总成绩'] = df.sum(axis=1) #按行求和 print(df) print("-" * 10) print(df.loc[['李大杰','zhuohua wu']]) #只输出行标题为“李大杰”、“zhuohua wu”的行数据 print("-" * 10) print(df.loc['李大杰']) #只输出行标题为“李大杰”,那一行的数据 print("-" * 10) print("行标题为“李大杰”的那一行的语文成绩、总成绩:") Result_1 = df.loc[['李大杰'],['语文成绩','总成绩']] print(Result_1) print("-" * 10) print("行标题为“李大杰”的那一行的总成绩:") Result_2 = df.loc[['李大杰'],['总成绩']] print(Result_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 语文成绩 数学成绩 英语成绩 总成绩 李大杰 110 105 99.0 314.0 Jacky 105 88 115.0 308.0 zhuohua wu 109 120 129.5 358.5 ---------- 语文成绩 数学成绩 英语成绩 总成绩 李大杰 110 105 99.0 314.0 zhuohua wu 109 120 129.5 358.5 ---------- 语文成绩 110.0 数学成绩 105.0 英语成绩 99.0 总成绩 314.0 Name: 李大杰, dtype: float64 ---------- 行标题为“李大杰”的那一行的语文成绩、总成绩: 语文成绩 总成绩 李大杰 110 314.0 ---------- 行标题为“李大杰”的那一行的总成绩: 总成绩 李大杰 314.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['总成绩'] = df.sum(axis=1) #按行求和 print(df) print("-" * 10) print("行标题为“李大杰”的那一行的总成绩的值:") Result_1 = df.loc['李大杰','总成绩'] print(Result_1) print(type(Result_1)) print("-" * 3) Result_1 = int(Result_1) print(Result_1) print(type(Result_1)) print("-" * 10) print("行标题为“zhuohua wu”的那一行的总成绩的值:") Result_2 = df.loc['zhuohua wu','总成绩'] print(Result_2) print(type(Result_2)) print("-" * 3) Result_2 = float(Result_2) print(Result_2) print(type(Result_2)) print("-" * 10) print("-" * 10) print("行标题为“zhuohua wu”的那一行的数学成绩的值:") Result_3 = df.loc['zhuohua wu','数学成绩'] print(Result_3) print(type(Result_3)) print("-" * 3) Result_3 = int(df.loc['zhuohua wu','数学成绩']) print(Result_3) print(type(Result_3)) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 语文成绩 数学成绩 英语成绩 总成绩 李大杰 110 105 99.0 314.0 Jacky 105 88 115.0 308.0 zhuohua wu 109 120 129.5 358.5 ---------- 行标题为“李大杰”的那一行的总成绩的值: 314.0 --- 314 ---------- 行标题为“zhuohua wu”的那一行的总成绩的值: 358.5 --- 358.5 ---------- ---------- 行标题为“zhuohua wu”的那一行的数学成绩的值: 120 --- 120 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年三班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) print("-" * 10) df['总成绩'] = df.sum(axis=1) #按行求和 print(df) print("-" * 10) print("各行的总成绩:") df = df['总成绩'] print(df) print("-" * 10) print("只输出行标题为“zhuohua”、“李大杰”的总成绩:") print(df[['zhuohua','李大杰']]) print("-" * 10) print("只输出行标题为“zhuohua”的那一行的总成绩:") print(df[['zhuohua']]) print("-" * 10) print("-" * 10) print("只输出行标题为“zhuohua”的那一行的总成绩的值:") df = df['zhuohua'] print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年三班 ---------- ---------- 语文成绩 数学成绩 英语成绩 班级 总成绩 李大杰 110.0 105 109 三年一班 324.0 Jacky 105.0 88 120 三年二班 313.0 zhuohua 99.5 115 130 三年三班 344.5 ---------- 各行的总成绩: 李大杰 324.0 Jacky 313.0 zhuohua 344.5 Name: 总成绩, dtype: float64 ---------- 只输出行标题为“zhuohua”、“李大杰”的总成绩: zhuohua 344.5 李大杰 324.0 Name: 总成绩, dtype: float64 ---------- 只输出行标题为“zhuohua”的那一行的总成绩: zhuohua 344.5 Name: 总成绩, dtype: float64 ---------- ---------- 只输出行标题为“zhuohua”的那一行的总成绩的值: 344.5 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['最高成绩'] = df.max(axis=1) #按行求最大值 print(df) print("-" * 10) print("输出各行的最高成绩:") df = df['最高成绩'] print(df) print("-" * 10) print("只输出前面两行的数据:") print(df[0:2]) # 从0开始计算 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 语文成绩 数学成绩 英语成绩 最高成绩 李大杰 110 105 99.0 110.0 Jacky 105 88 115.0 115.0 zhuohua wu 109 120 129.5 129.5 ---------- 输出各行的最高成绩: 李大杰 110.0 Jacky 115.0 zhuohua wu 129.5 Name: 最高成绩, dtype: float64 ---------- 只输出前面两行的数据: 李大杰 110.0 Jacky 115.0 Name: 最高成绩, dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年三班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) print("-" * 10) df['最高成绩'] = df.max(axis=1) #按行求最大值 print(df) print("-" * 10) print("分别输出各行的数学成绩、最高成绩:") df = df[['数学成绩','最高成绩']] print(df) print("-" * 10) print("只输出前面两行的数据:") print(df[0:2]) # 从0开始计算 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年三班 ---------- ---------- 语文成绩 数学成绩 英语成绩 班级 最高成绩 李大杰 110.0 105 109 三年一班 110.0 Jacky 105.0 88 120 三年二班 120.0 zhuohua 99.5 115 130 三年三班 130.0 ---------- 分别输出各行的数学成绩、最高成绩: 数学成绩 最高成绩 李大杰 105 110.0 Jacky 88 120.0 zhuohua 115 130.0 ---------- 只输出前面两行的数据: 数学成绩 最高成绩 李大杰 105 110.0 Jacky 88 120.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) print("-" * 10) df['最高成绩'] = df.max(axis=1) #按行求最大值 print(df) print("-" * 10) ## 在上面的基础上,按“班级”进行分组后求最大值: df = df.groupby('班级').max() print(df) print("-" * 10) print("分别输出各班级的最高成绩:") ## 一次性删除列标题为“英语成绩”、“语文成绩”、“数学成绩”的数据: df.drop(['英语成绩','语文成绩','数学成绩'],axis=1,inplace=True) print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- ---------- 语文成绩 数学成绩 英语成绩 班级 最高成绩 李大杰 110.0 105 109 三年一班 110.0 Jacky 105.0 88 120 三年二班 120.0 zhuohua 99.5 115 130 三年二班 130.0 ---------- 语文成绩 数学成绩 英语成绩 最高成绩 班级 三年一班 110.0 105 109 110.0 三年二班 105.0 115 130 130.0 ---------- 分别输出各班级的最高成绩: 最高成绩 班级 三年一班 110.0 三年二班 130.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) print("-" * 10) df['最高成绩'] = df.max(axis=1) #按行求最大值 #print(df) #print("-" * 10) ## 在上面的基础上,按“班级”进行分组后求最大值: df = df.groupby('班级').max() print(df) print("-" * 10) print("分别输出各班级的最高成绩:") ## 一次性删除列标题为“英语成绩”、“语文成绩”、“数学成绩”的数据: df.drop(['英语成绩','语文成绩','数学成绩'],axis=1,inplace=True) #print(df) print("-" * 3) df.sort_values(by='最高成绩',ascending=False, inplace=True) #按“最高成绩”进行排序(降序) print(df) print("-" * 3) df.sort_values(by='最高成绩',ascending=True, inplace=True) #按“最高成绩”进行排序(升序) print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- ---------- 语文成绩 数学成绩 英语成绩 最高成绩 班级 三年一班 110.0 105 109 110.0 三年二班 105.0 115 130 130.0 ---------- 分别输出各班级的最高成绩: --- 最高成绩 班级 三年二班 130.0 三年一班 110.0 --- 最高成绩 班级 三年一班 110.0 三年二班 130.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['各行的最低成绩'] = df.min(axis=1) #按行求最小值 print(df) print("-" * 10) print("分别输出各行的数学成绩、最低成绩:") print(df.iloc[:,[1,3]]) #输出所有行的第2列、第4列 print("-" * 10) print("只输出各行的最低成绩:") print(df.iloc[:,3]) #输出所有行的第4列 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 语文成绩 数学成绩 英语成绩 各行的最低成绩 李大杰 110 105 99.0 99.0 Jacky 105 88 115.0 88.0 zhuohua wu 109 120 129.5 109.0 ---------- 分别输出各行的数学成绩、最低成绩: 数学成绩 各行的最低成绩 李大杰 105 99.0 Jacky 88 88.0 zhuohua wu 120 109.0 ---------- 只输出各行的最低成绩: 李大杰 99.0 Jacky 88.0 zhuohua wu 109.0 Name: 各行的最低成绩, dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['最低成绩'] = df.min(axis=1) #按行求最小值 print(df) print("-" * 10) print("分别输出各行的数学成绩、英语成绩、最低成绩:") print(df.iloc[:,1:4]) #输出所有行的第2列至第4列 print("-" * 10) print("-" * 10) print("只输出各行的最低成绩:") print(df.iloc[:,3]) #输出所有行的第4列 print("-" * 10) print("只输出前面两行的最低成绩:") df_1 = df.iloc[:,3] print(df_1.head(2)) #输出前面两行的数据 print("-" * 10) print("只输出最后两行的最低成绩:") df_2 = df.iloc[:,3] print(df_2.tail(2)) #输出最后两行的数据 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 语文成绩 数学成绩 英语成绩 最低成绩 李大杰 110 105 99.0 99.0 Jacky 105 88 115.0 88.0 zhuohua wu 109 120 129.5 109.0 ---------- 分别输出各行的数学成绩、英语成绩、最低成绩: 数学成绩 英语成绩 最低成绩 李大杰 105 99.0 99.0 Jacky 88 115.0 88.0 zhuohua wu 120 129.5 109.0 ---------- ---------- 只输出各行的最低成绩: 李大杰 99.0 Jacky 88.0 zhuohua wu 109.0 Name: 最低成绩, dtype: float64 ---------- 只输出前面两行的最低成绩: 李大杰 99.0 Jacky 88.0 Name: 最低成绩, dtype: float64 ---------- 只输出最后两行的最低成绩: Jacky 88.0 zhuohua wu 109.0 Name: 最低成绩, dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) print("-" * 10) df['最低成绩'] = df.min(axis=1) #按行求最小值 print(df) print("-" * 10) ## 在上面的基础上,按“班级”进行分组后求最小值: df = df.groupby('班级').min() print(df) print("-" * 10) ## 一次性删除列标题为“英语成绩”、“语文成绩”、“数学成绩”的数据: df.drop(['英语成绩','语文成绩','数学成绩'],axis=1,inplace=True) print(df) print("-" * 3) print("“三年二班”的最低成绩:") Result_1 = df.loc[['三年二班'],['最低成绩']] print(Result_1) print("-" * 3) print("“三年二班”的最低成绩的值:") Result_2 = df.loc['三年二班','最低成绩'] print(Result_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- ---------- 语文成绩 数学成绩 英语成绩 班级 最低成绩 李大杰 110.0 105 109 三年一班 105.0 Jacky 105.0 88 120 三年二班 88.0 zhuohua 99.5 115 130 三年二班 99.5 ---------- 语文成绩 数学成绩 英语成绩 最低成绩 班级 三年一班 110.0 105 109 105.0 三年二班 99.5 88 120 88.0 ---------- 最低成绩 班级 三年一班 105.0 三年二班 88.0 --- “三年二班”的最低成绩: 最低成绩 班级 三年二班 88.0 --- “三年二班”的最低成绩的值: 88.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['各行的中位数'] = df.median(axis=1) #按行求中位数。(中位数是指一组数据中位于中间位置的数) print(df) print("-" * 10) print('各行的中位数:') df = df['各行的中位数'] print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 语文成绩 数学成绩 英语成绩 各行的中位数 李大杰 110 105 99.0 105.0 Jacky 105 88 115.0 105.0 zhuohua wu 109 120 129.5 120.0 ---------- 各行的中位数: 李大杰 105.0 Jacky 105.0 zhuohua wu 120.0 Name: 各行的中位数, dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) print("-" * 10) df['各行的中位数'] = df.median(axis=1) #按行求中位数 #print(df) print('各行的中位数:') df = df['各行的中位数'] print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- ---------- 各行的中位数: 李大杰 109.0 Jacky 105.0 zhuohua 115.0 Name: 各行的中位数, dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,-105,99],[105,88,115],[-109,-120,-129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print('各行的中位数:') df = df.median(axis=1) #按行求中位数。(这里没有设置输出结果的列标题) print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 -105 99.0 Jacky 105 88 115.0 zhuohua wu -109 -120 -129.5 ---------- ---------- 各行的中位数: 李大杰 99.0 Jacky 105.0 zhuohua wu -120.0 dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,110,99],[105,88,105],[120,129.5,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['各行的众数'] = df.mode(axis=1) #按行求众数。(众数是指一组数据中出现最多的数) print(df) print("-" * 10) print("各行的众数:") df = df['各行的众数'] print(df) 脚本运行的结果:(假如没有重复出现的数就会报错) C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 110.0 99.0 Jacky 105 88.0 105.0 zhuohua wu 120 129.5 129.5 ---------- ---------- 语文成绩 数学成绩 英语成绩 各行的众数 李大杰 110 110.0 99.0 110.0 Jacky 105 88.0 105.0 105.0 zhuohua wu 120 129.5 129.5 129.5 ---------- 各行的众数: 李大杰 110.0 Jacky 105.0 zhuohua wu 129.5 Name: 各行的众数, dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,-105,120], '数学成绩':[110,88,129.5], '英语成绩':[99,-105,129.5], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) print("-" * 10) print('各行的众数:') df = df.mode(axis=1) #按行求众数。(这里没有设置输出结果的列标题) print(df) 脚本运行的结果:(假如没有重复出现的数就会报错) C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110 110.0 99.0 三年一班 Jacky -105 88.0 -105.0 三年二班 zhuohua 120 129.5 129.5 三年二班 ---------- ---------- 各行的众数: 0 李大杰 110.0 Jacky -105.0 zhuohua 129.5 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['各行的平均成绩'] = df.mean(axis=1) #按行求平均值 print(df) print("-" * 10) print("各行的平均值:") df = df['各行的平均成绩'] print(df) print("-" * 10) print("各行的平均值:(结果只保留两位小数)") df = df.round(2) #保留两位小数 print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 语文成绩 数学成绩 英语成绩 各行的平均成绩 李大杰 110 105 99.0 104.666667 Jacky 105 88 115.0 102.666667 zhuohua wu 109 120 129.5 119.500000 ---------- 各行的平均值: 李大杰 104.666667 Jacky 102.666667 zhuohua wu 119.500000 Name: 各行的平均成绩, dtype: float64 ---------- 各行的平均值:(结果只保留两位小数) 李大杰 104.67 Jacky 102.67 zhuohua wu 119.50 Name: 各行的平均成绩, dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各行的平均值:") df = df.mean(axis=1) #按行求平均值。(这里没有设置输出结果的列标题) print(df) print("-" * 10) print("各行的平均值:(结果只保留一位小数)") df = df.round(1) #保留一位小数 print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各行的平均值: 李大杰 104.666667 Jacky 102.666667 zhuohua wu 119.500000 dtype: float64 ---------- 各行的平均值:(结果只保留一位小数) 李大杰 104.7 Jacky 102.7 zhuohua wu 119.5 dtype: float64 C:\Users\jacky\Desktop> ###### ###### 方差主要用于衡量一组数据的离散程度,即一组数据与自己平均数的差的平方,用这个结果来衡量这组数据的波动大小,方差越小越稳定。 #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,113,102,105,108],[118,98,119,85,118]] Key_index=['李大杰','zhuohua wu'] Key_columns=['语文成绩1','语文成绩2','语文成绩3','语文成绩4','语文成绩5'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['各行的方差'] = df.var(axis=1) #按行求方差 print(df) print("-" * 10) print("各行的方差:(方差越小越稳定)") df = df['各行的方差'] print(df) print("-" * 10) print("行标题为“李大杰”的那一行的方差的值:") df = df['李大杰'] print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩1 语文成绩2 语文成绩3 语文成绩4 语文成绩5 李大杰 110 113 102 105 108 zhuohua wu 118 98 119 85 118 ---------- ---------- 语文成绩1 语文成绩2 语文成绩3 语文成绩4 语文成绩5 各行的方差 李大杰 110 113 102 105 108 18.3 zhuohua wu 118 98 119 85 118 237.3 ---------- 各行的方差:(方差越小越稳定) 李大杰 18.3 zhuohua wu 237.3 Name: 各行的方差, dtype: float64 ---------- 行标题为“李大杰”的那一行的方差的值: 18.300000000000004 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,113,102,105,108],[118,98,119,85,118]] Key_index=['李大杰','zhuohua wu'] Key_columns=['语文成绩1','语文成绩2','语文成绩3','语文成绩4','语文成绩5'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['各行的方差'] = df.var(axis=1) #按行求方差 #print(df) #print("-" * 10) print("各行的方差:(方差越小越稳定)") df = df['各行的方差'] print(df) print("-" * 10) print("第一行的方差的值:") df = df[0] #这是第一行,从0开始计算的 print(df) print("-" * 3) df = df.round(2) #保留两位小数 print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩1 语文成绩2 语文成绩3 语文成绩4 语文成绩5 李大杰 110 113 102 105 108 zhuohua wu 118 98 119 85 118 ---------- ---------- 各行的方差:(方差越小越稳定) 李大杰 18.3 zhuohua wu 237.3 Name: 各行的方差, dtype: float64 ---------- 第一行的方差的值: 18.300000000000004 --- 18.3 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,113,102,105,108],[118,98,119,85,118]] Key_index=['李大杰','zhuohua wu'] Key_columns=['语文成绩1','语文成绩2','语文成绩3','语文成绩4','语文成绩5'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各行的方差:(方差越小越稳定)") df = df.var(axis=1) #按行求方差。(这里没有设置输出结果的列标题) print(df) print("-" * 10) print("第二行的方差的值:") df = df[1] #这是第二行,从0开始计算的 print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩1 语文成绩2 语文成绩3 语文成绩4 语文成绩5 李大杰 110 113 102 105 108 zhuohua wu 118 98 119 85 118 ---------- ---------- 各行的方差:(方差越小越稳定) 李大杰 18.3 zhuohua wu 237.3 dtype: float64 ---------- 第二行的方差的值: 237.3 C:\Users\jacky\Desktop> ###### 均方差又称标准差,是方差的平方根,也是用来表示数据的离散程度,均方差越小越稳定。 #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,113,102,105,108],[118,98,119,85,118]] Key_index=['李大杰','zhuohua wu'] Key_columns=['语文成绩1','语文成绩2','语文成绩3','语文成绩4','语文成绩5'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) df['各行的均方差'] = df.std(axis=1) #按行求均方差 print(df) print("-" * 10) print("各行的均方差:(均方差越小越稳定)") df = df['各行的均方差'] print(df) print("-" * 10) print("行标题为“李大杰”的那一行的均方差:") print(df.loc[['李大杰']]) print("-" * 10) print("行标题为“李大杰”的那一行的均方差的值:") df_1 = df['李大杰'] print(df_1) print("-" * 10) print("第一行的均方差的值:") df_2 = df[0] #这是第一行,从0开始计算的 print(df_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩1 语文成绩2 语文成绩3 语文成绩4 语文成绩5 李大杰 110 113 102 105 108 zhuohua wu 118 98 119 85 118 ---------- ---------- 语文成绩1 语文成绩2 语文成绩3 语文成绩4 语文成绩5 各行的均方差 李大杰 110 113 102 105 108 4.277850 zhuohua wu 118 98 119 85 118 15.404545 ---------- 各行的均方差:(均方差越小越稳定) 李大杰 4.277850 zhuohua wu 15.404545 Name: 各行的均方差, dtype: float64 ---------- 行标题为“李大杰”的那一行的均方差: 李大杰 4.27785 Name: 各行的均方差, dtype: float64 ---------- 行标题为“李大杰”的那一行的均方差的值: 4.277849927241488 ---------- 第一行的均方差的值: 4.277849927241488 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,113,102,105,108],[118,98,119,85,118]] Key_index=['李大杰','zhuohua wu'] Key_columns=['语文成绩1','语文成绩2','语文成绩3','语文成绩4','语文成绩5'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各行的均方差:(均方差越小越稳定)") df = df.std(axis=1) #按行求均方差。(这里没有设置输出结果的列标题) print(df) print("-" * 10) print("行标题为“zhuohua wu”的那一行的均方差:") print(df.loc[['zhuohua wu']]) print("-" * 10) print("行标题为“zhuohua wu”的那一行的均方差的值:") df_1 = df['zhuohua wu'] print(df_1) print("-" * 10) print("第二行的均方差的值:") df_2 = df[1] #这是第二行,从0开始计算的 print(df_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩1 语文成绩2 语文成绩3 语文成绩4 语文成绩5 李大杰 110 113 102 105 108 zhuohua wu 118 98 119 85 118 ---------- ---------- 各行的均方差:(均方差越小越稳定) 李大杰 4.277850 zhuohua wu 15.404545 dtype: float64 ---------- 行标题为“zhuohua wu”的那一行的均方差: zhuohua wu 15.404545 dtype: float64 ---------- 行标题为“zhuohua wu”的那一行的均方差的值: 15.404544783926593 ---------- 第二行的均方差的值: 15.404544783926593 C:\Users\jacky\Desktop> ###### ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各列的总成绩:") df = df.sum() #按列求和 print(df) print("-" * 10) print("只输出“语文成绩”、“英语成绩”的总成绩:") print(df[['语文成绩','英语成绩']]) print("-" * 10) print("只输出“语文成绩”的总成绩:") print(df[['语文成绩']]) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各列的总成绩: 语文成绩 324.0 数学成绩 313.0 英语成绩 343.5 dtype: float64 ---------- 只输出“语文成绩”、“英语成绩”的总成绩: 语文成绩 324.0 英语成绩 343.5 dtype: float64 ---------- 只输出“语文成绩”的总成绩: 语文成绩 324.0 dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各列的总成绩:") df = df.sum() #按列求和 print(df) print("-" * 10) print("只输出“英语成绩”那一列的总成绩的值:") df_1 = df['英语成绩'] print(df_1) print("-" * 10) print("只输出“数学成绩”那一列的总成绩的值:") df_2 = df['数学成绩'].sum() print(df_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各列的总成绩: 语文成绩 324.0 数学成绩 313.0 英语成绩 343.5 dtype: float64 ---------- 只输出“英语成绩”那一列的总成绩的值: 343.5 ---------- 只输出“数学成绩”那一列的总成绩的值: 313.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各列的最高成绩:") df = df.max() #按列求最大值 print(df) print("-" * 10) print("“英语成绩”那一列的最高成绩的值:") df = df['英语成绩'].max() print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各列的最高成绩: 语文成绩 110.0 数学成绩 120.0 英语成绩 129.5 dtype: float64 ---------- “英语成绩”那一列的最高成绩的值: 129.5 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) print("-" * 10) ## 一次性删除列标题为“语文成绩”、“数学成绩”的数据: df.drop(['语文成绩','数学成绩'],axis=1,inplace=True) print(df) print("-" * 10) print("分别输出各班级的“英语成绩”的最高成绩:") ## 按“班级”进行分组后求最大值: df = df.groupby('班级').max() print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- ---------- 英语成绩 班级 李大杰 109 三年一班 Jacky 120 三年二班 zhuohua 130 三年二班 ---------- 分别输出各班级的“英语成绩”的最高成绩: 英语成绩 班级 三年一班 109 三年二班 130 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各列的最低成绩:") df = df.min() #按列求最小值 print(df) print("-" * 10) print("“数学成绩”那一列的最低成绩的值:") df_1 = df['数学成绩'].min() print(df_1) print("-" * 10) print("“英语成绩”那一列的最低成绩的值:") df_2 = df['英语成绩'].min() print(df_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各列的最低成绩: 语文成绩 105.0 数学成绩 88.0 英语成绩 99.0 dtype: float64 ---------- “数学成绩”那一列的最低成绩的值: 88.0 ---------- “英语成绩”那一列的最低成绩的值: 99.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各列的最低成绩:") df = df.min() #按列求最小值 print(df) print("-" * 10) print(df.head(2)) #输出前面两行的数据 print("-" * 10) print(df.tail(2)) #输出最后两行的数据 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各列的最低成绩: 语文成绩 105.0 数学成绩 88.0 英语成绩 99.0 dtype: float64 ---------- 语文成绩 105.0 数学成绩 88.0 dtype: float64 ---------- 数学成绩 88.0 英语成绩 99.0 dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) print("-" * 10) ## 一次性删除列标题为“语文成绩”、“数学成绩”的数据: df.drop(['语文成绩','数学成绩'],axis=1,inplace=True) print(df) print("-" * 10) print("分别输出各班级的“英语成绩”的最低成绩:") ## 按“班级”进行分组后求最小值: df = df.groupby('班级').min() print(df) print("-" * 3) df.sort_values(by='英语成绩',ascending=False, inplace=True) #按“英语成绩”进行排序(降序) print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- ---------- 英语成绩 班级 李大杰 109 三年一班 Jacky 120 三年二班 zhuohua 130 三年二班 ---------- 分别输出各班级的“英语成绩”的最低成绩: 英语成绩 班级 三年一班 109 三年二班 120 --- 英语成绩 班级 三年二班 120 三年一班 109 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各列的中位数:") df = df.median() #按列求中位数 print(df) print("-" * 10) print("只输出“英语成绩”那一列的中位数的值:") df = df['英语成绩'] print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各列的中位数: 语文成绩 109.0 数学成绩 105.0 英语成绩 115.0 dtype: float64 ---------- 只输出“英语成绩”那一列的中位数的值: 115.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各列的中位数:") df = df.median() #按列求中位数 print(df) print("-" * 10) print("只输出“英语成绩”那一列的中位数的值:") df_1 = df['英语成绩'] print(df_1) print("-" * 10) print("只输出“语文成绩”那一列的中位数的值:") df_2 = df['语文成绩'] print(df_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各列的中位数: 语文成绩 109.0 数学成绩 105.0 英语成绩 115.0 dtype: float64 ---------- 只输出“英语成绩”那一列的中位数的值: 115.0 ---------- 只输出“语文成绩”那一列的中位数的值: 109.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,120,129.5],[110,88,105],[120,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各列的众数:") df = df.mode() #按列求众数 print(df) print("-" * 10) print("“英语成绩”那一列的众数的值:") df_1 = df['英语成绩'].mode() print(df_1) print("-" * 3) df_1 = df_1[0] print(df_1) print("-" * 10) print("只输出“语文成绩”那一列的众数的值:") df_2 = df['语文成绩'] print(df_2) print("-" * 3) df_2 = df_2[0] print(df_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 120 129.5 Jacky 110 88 105.0 zhuohua wu 120 120 129.5 ---------- ---------- 各列的众数: 语文成绩 数学成绩 英语成绩 0 110 120 129.5 ---------- “英语成绩”那一列的众数的值: 0 129.5 dtype: float64 --- 129.5 ---------- 只输出“语文成绩”那一列的众数的值: 0 110 Name: 语文成绩, dtype: int64 --- 110 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各列的平均成绩:") df = df.mean() #按列求平均值 print(df) print("-" * 10) print("“语文成绩”那一列的平均成绩的值:") df = df['语文成绩'].mean() print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各列的平均成绩: 语文成绩 108.000000 数学成绩 104.333333 英语成绩 114.500000 dtype: float64 ---------- “语文成绩”那一列的平均成绩的值: 108.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,105,99],[105,88,115],[109,120,129.5]] Key_index=['李大杰','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) print("各列的平均成绩:(结果只保留两位小数)") df = df.mean() #按列求平均值 #print(df) df = df.round(2) #保留两位小数 print(df) print("-" * 10) print("“语文成绩”那一列的平均成绩的值:") df_1 = df['语文成绩'].mean() print(df_1) print("-" * 10) print("“数学成绩”那一列的平均成绩的值:") df_2 = df['数学成绩'].mean() print(df_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 105 99.0 Jacky 105 88 115.0 zhuohua wu 109 120 129.5 ---------- ---------- 各列的平均成绩:(结果只保留两位小数) 语文成绩 108.00 数学成绩 104.33 英语成绩 114.50 dtype: float64 ---------- “语文成绩”那一列的平均成绩的值: 108.0 ---------- “数学成绩”那一列的平均成绩的值: 104.33 C:\Users\jacky\Desktop> ###### ###### 分位数也称分位点,它以概率为依据将数据分割为几个等份,分位数是数据分析中常用的一个统计量,经过抽样得到一个样本值。 #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[120,89,98,78,65,102,112,56,79,45] Key_index=['李大杰','李小明','张小红','小明','李小好','蔺小小','吴小明','武小明','Jacky','zhuohua wu'] Key_columns=['语文成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) ## 使用quantile函数计算出50%的分位数,筛选出“语文成绩”大于分位数的学生: Key_x = df['语文成绩'].quantile(0.50) Result_1 = df[df['语文成绩'] > Key_x] print(Result_1) print("-" * 10) ## 使用quantile函数计算出70%的分位数,筛选出“语文成绩”大于分位数的学生: Key_x = df['语文成绩'].quantile(0.70) Result_2 = df[df['语文成绩'] > Key_x] print(Result_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 李大杰 120 李小明 89 张小红 98 小明 78 李小好 65 蔺小小 102 吴小明 112 武小明 56 Jacky 79 zhuohua wu 45 ---------- ---------- 语文成绩 李大杰 120 李小明 89 张小红 98 蔺小小 102 吴小明 112 ---------- 语文成绩 李大杰 120 蔺小小 102 吴小明 112 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[120,89,98,78,65,102,112,56,79,45] Key_index=['李大杰','李小明','张小红','小明','李小好','蔺小小','吴小明','武小明','Jacky','zhuohua wu'] Key_columns=['语文成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) ## 使用quantile函数计算出50%的分位数,筛选出“语文成绩”大于分位数的学生: Key_x = df['语文成绩'].quantile(0.50) df = df[df['语文成绩'] > Key_x] print(df) print("-" * 10) ## 在上面的基础上,再使用quantile函数计算出70%的分位数,筛选出“语文成绩”大于分位数的学生: Key_x = df['语文成绩'].quantile(0.70) df = df[df['语文成绩'] > Key_x] print(df) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 李大杰 120 李小明 89 张小红 98 小明 78 李小好 65 蔺小小 102 吴小明 112 武小明 56 Jacky 79 zhuohua wu 45 ---------- ---------- 语文成绩 李大杰 120 李小明 89 张小红 98 蔺小小 102 吴小明 112 ---------- 语文成绩 李大杰 120 吴小明 112 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[120,89,98,78,65,102,112,56,79,45] Key_index=['李大杰','李小明','张小红','小明','李小好','蔺小小','吴小明','武小明','Jacky','zhuohua wu'] Key_columns=['语文成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) ## 使用quantile函数计算出50%的分位数,筛选出“语文成绩”小于或等于分位数的学生: Key_x = df['语文成绩'].quantile(0.50) Result_1 = df[df['语文成绩']<=Key_x] print(Result_1) print("-" * 10) ## 使用quantile函数计算出70%的分位数,筛选出“语文成绩”小于或等于分位数的学生: Key_y = df['语文成绩'].quantile(0.70) Result_2 = df[df['语文成绩']<=Key_y] print(Result_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 李大杰 120 李小明 89 张小红 98 小明 78 李小好 65 蔺小小 102 吴小明 112 武小明 56 Jacky 79 zhuohua wu 45 ---------- ---------- 语文成绩 小明 78 李小好 65 武小明 56 Jacky 79 zhuohua wu 45 ---------- 语文成绩 李小明 89 张小红 98 小明 78 李小好 65 武小明 56 Jacky 79 zhuohua wu 45 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) Key_data=[[110,113,102],[118,98,119],[128,76,120],[18,120,19]] Key_index=['李大杰','李小明','Jacky','zhuohua wu'] Key_columns=['语文成绩','数学成绩','英语成绩'] df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据 print(df) print("-" * 10) print("-" * 10) ## 使用quantile函数计算75%的分位数,筛选出“数学成绩”小于或等于分位数的学生: Key_x = df['数学成绩'].quantile(0.75) Result_1 = df[df['数学成绩'] <= Key_x] print(Result_1) print("-" * 10) ## 使用quantile函数计算50%的分位数,筛选出“数学成绩”小于或等于分位数的学生: Key_y = df['数学成绩'].quantile(0.50) Result_2 = df[df['数学成绩'] <= Key_y] print(Result_2) print("-" * 10) ## 使用quantile函数计算25%的分位数,筛选出“数学成绩”小于或等于分位数的学生: Key_z = df['数学成绩'].quantile(0.25) Result_3 = df[df['数学成绩'] <= Key_z] print(Result_3) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 李大杰 110 113 102 李小明 118 98 119 Jacky 128 76 120 zhuohua wu 18 120 19 ---------- ---------- 语文成绩 数学成绩 英语成绩 李大杰 110 113 102 李小明 118 98 119 Jacky 128 76 120 ---------- 语文成绩 数学成绩 英语成绩 李小明 118 98 119 Jacky 128 76 120 ---------- 语文成绩 数学成绩 英语成绩 Jacky 128 76 120 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) df=pd.DataFrame( { '样品1':[1,2] }) print('输出样品的两个数值之间的50%的分位数:') Key_x = 0.5 Result_1 = df.quantile(Key_x,numeric_only=False) print(Result_1) print("-" * 10) print('输出样品的两个数值之间的25%的分位数:') Result_2 = df.quantile(0.25,numeric_only=False) print(Result_2) print("-" * 3) print(Result_2[0]) print(type(Result_2[0])) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 输出样品的两个数值之间的50%的分位数: 样品1 1.5 Name: 0.5, dtype: float64 ---------- 输出样品的两个数值之间的25%的分位数: 样品1 1.25 Name: 0.25, dtype: float64 --- 1.25 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) df=pd.DataFrame( { '样品1':[1,2], '样品2':[100,200], '样品3':[105,200.5] }) print('分别输出不同样品的两个数值之间的50%的分位数:') Result_1 = df.quantile(0.5,numeric_only=False) print(Result_1) print("-" * 10) print("-" * 10) print('分别输出不同样品的两个数值之间的35%的分位数:') Result_2 = df.quantile(0.35,numeric_only=False) print(Result_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 分别输出不同样品的两个数值之间的50%的分位数: 样品1 1.50 样品2 150.00 样品3 152.75 Name: 0.5, dtype: float64 ---------- ---------- 分别输出不同样品的两个数值之间的35%的分位数: 样品1 1.350 样品2 135.000 样品3 138.425 Name: 0.35, dtype: float64 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) df=pd.DataFrame( { '样品1':[pd.Timestamp('2018'),pd.Timestamp('2019')] }) print('输出样品的两个时间之间的50%的分位数:') Result_1 = df.quantile(0.5,numeric_only=False) print(Result_1) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 输出样品的两个时间之间的50%的分位数: 样品1 2018-07-02 12:00:00 Name: 0.5, dtype: datetime64[ns] C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) df=pd.DataFrame( { '样品1':[pd.Timestamp('2018-1-1'),pd.Timestamp('2019-1-1')] }) print('输出样品的两个时间之间的50%的分位数:') Result_1 = df.quantile(0.5,numeric_only=False) print(Result_1) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 输出样品的两个时间之间的50%的分位数: 样品1 2018-07-02 12:00:00 Name: 0.5, dtype: datetime64[ns] C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) df=pd.DataFrame( { '样品1':[pd.Timestamp('2018-1-1 0:12:23'),pd.Timestamp('2019-1-1 0:16:23')] }) print('输出样品的两个时间之间的50%的分位数:') Result_1 = df.quantile(0.5,numeric_only=False) print(Result_1) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 输出样品的两个时间之间的50%的分位数: 样品1 2018-07-02 12:14:23 Name: 0.5, dtype: datetime64[ns] C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) df=pd.DataFrame( { '样品1':[pd.Timestamp('0:12:23'),pd.Timestamp('0:16:23')] }) print('输出样品的两个时间之间的50%的分位数:') Result_1 = df.quantile(0.5,numeric_only=False) print(Result_1) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 输出样品的两个时间之间的50%的分位数: 样品1 2023-09-02 00:14:23 Name: 0.5, dtype: datetime64[ns] C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd pd.set_option('display.unicode.east_asian_width',True) df=pd.DataFrame( { '样品1':[pd.Timedelta('1 days'),pd.Timedelta('2 days')] }) print('输出样品的两个时间之间的50%的分位数:') Result_1 = df.quantile(0.5,numeric_only=False) print(Result_1) print("-" * 10) print("-" * 10) print('输出样品的两个时间之间的25%的分位数:') Result_2 = df.quantile(0.25,numeric_only=False) print(Result_2) 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 输出样品的两个时间之间的50%的分位数: 样品1 1 days 12:00:00 Name: 0.5, dtype: timedelta64[ns] ---------- ---------- 输出样品的两个时间之间的25%的分位数: 样品1 1 days 06:00:00 Name: 0.25, dtype: timedelta64[ns] C:\Users\jacky\Desktop> ###### ###### #coding=utf-8 import pandas as pd class class1(): #自定义一个类 def func1(self): pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '年龄':[18,10,20], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) ## 删除列标题为“年龄”的数据: df.drop(['年龄'],axis=1,inplace=True) print(df) print("-" * 10) df['总成绩'] = df.sum(axis=1) #按行求和 print(df) print("-" * 10) print("-" * 10) ## 导出到指定的txt文件: df.to_csv('d:/a.txt',sep='\t',index=True,header=True) #保留索引、列标题 self.func2() #执行func2() def func2(self): pd.set_option('display.unicode.east_asian_width',True) df = pd.read_csv('d:/a.txt',sep='\t',encoding='utf-8') #导入指定的txt文件 print(df) print("-" * 10) ## 修改一个列标题 df.rename(columns={'Unnamed: 0':'姓名'},inplace=True) print(df) print("-" * 10) print("分别输出各个学生的班级、总成绩:") ## 一次性删除列标题为“英语成绩”、“语文成绩”、“数学成绩”的数据: df.drop(['英语成绩','语文成绩','数学成绩'],axis=1,inplace=True) print(df) print("-" * 10) ## 不输出索引: df = df.to_string(index=False) print(df) if __name__ == '__main__': myclass = class1() myclass.func1() 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 年龄 班级 李大杰 110.0 105 109 18 三年一班 Jacky 105.0 88 120 10 三年二班 zhuohua 99.5 115 130 20 三年二班 ---------- 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- 语文成绩 数学成绩 英语成绩 班级 总成绩 李大杰 110.0 105 109 三年一班 324.0 Jacky 105.0 88 120 三年二班 313.0 zhuohua 99.5 115 130 三年二班 344.5 ---------- ---------- Unnamed: 0 语文成绩 数学成绩 英语成绩 班级 总成绩 0 李大杰 110.0 105 109 三年一班 324.0 1 Jacky 105.0 88 120 三年二班 313.0 2 zhuohua 99.5 115 130 三年二班 344.5 ---------- 姓名 语文成绩 数学成绩 英语成绩 班级 总成绩 0 李大杰 110.0 105 109 三年一班 324.0 1 Jacky 105.0 88 120 三年二班 313.0 2 zhuohua 99.5 115 130 三年二班 344.5 ---------- 分别输出各个学生的班级、总成绩: 姓名 班级 总成绩 0 李大杰 三年一班 324.0 1 Jacky 三年二班 313.0 2 zhuohua 三年二班 344.5 ---------- 姓名 班级 总成绩 李大杰 三年一班 324.0 Jacky 三年二班 313.0 zhuohua 三年二班 344.5 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd class class1(): #自定义一个类 def func1(self): pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) df['最高成绩'] = df.max(axis=1) #按行求最大值 print(df) print("-" * 10) print("-" * 10) ## 导出到指定的txt文件: df.to_csv('d:/a.txt',sep='\t',index=True,header=True) #保留索引、列标题 self.func2() #执行func2() def func2(self): pd.set_option('display.unicode.east_asian_width',True) df = pd.read_csv('d:/a.txt',sep='\t',encoding='utf-8') #导入指定的txt文件 print(df) print("-" * 10) ## 修改一个列标题 df.rename(columns={'Unnamed: 0':'姓名'},inplace=True) print(df) print("-" * 10) ## 按“班级”进行分组后求最大值: df = df.groupby('班级').max() print(df) print("-" * 10) print("分别输出各班级的最高成绩:") ## 一次性删除列标题为“英语成绩”、“语文成绩”、“数学成绩”的数据: df.drop(['英语成绩','语文成绩','数学成绩'],axis=1,inplace=True) print(df) if __name__ == '__main__': myclass = class1() myclass.func1() 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- 语文成绩 数学成绩 英语成绩 班级 最高成绩 李大杰 110.0 105 109 三年一班 110.0 Jacky 105.0 88 120 三年二班 120.0 zhuohua 99.5 115 130 三年二班 130.0 ---------- ---------- Unnamed: 0 语文成绩 数学成绩 英语成绩 班级 最高成绩 0 李大杰 110.0 105 109 三年一班 110.0 1 Jacky 105.0 88 120 三年二班 120.0 2 zhuohua 99.5 115 130 三年二班 130.0 ---------- 姓名 语文成绩 数学成绩 英语成绩 班级 最高成绩 0 李大杰 110.0 105 109 三年一班 110.0 1 Jacky 105.0 88 120 三年二班 120.0 2 zhuohua 99.5 115 130 三年二班 130.0 ---------- 姓名 语文成绩 数学成绩 英语成绩 最高成绩 班级 三年一班 李大杰 110.0 105 109 110.0 三年二班 zhuohua 105.0 115 130 130.0 ---------- 分别输出各班级的最高成绩: 姓名 最高成绩 班级 三年一班 李大杰 110.0 三年二班 zhuohua 130.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd class class1(): #自定义一个类 def func1(self): pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) df['最低成绩'] = df.min(axis=1) #按行求最小值 print(df) print("-" * 10) print("-" * 10) ## 导出到指定的txt文件: df.to_csv('d:\\a.txt',sep='\t',index=True,header=True) #保留索引、列标题 self.func2() #执行func2() def func2(self): pd.set_option('display.unicode.east_asian_width',True) df = pd.read_csv('d:\\a.txt',sep='\t',encoding='utf-8') #导入指定的txt文件 print(df) print("-" * 10) ## 修改一个列标题 df.rename(columns={'Unnamed: 0':'姓名'},inplace=True) print(df) print("-" * 10) ## 按“班级”进行分组后求最小值: df = df.groupby('班级').min() print(df) print("-" * 10) print("分别输出各班级的最低成绩:") ## 一次性删除列标题为“英语成绩”、“语文成绩”、“数学成绩”的数据: df.drop(['英语成绩','语文成绩','数学成绩'],axis=1,inplace=True) print(df) self.df = df self.func3() #执行func3() def func3(self): print("-" * 3) self.df.sort_values(by='最低成绩',ascending=True, inplace=True) #按“最低成绩”进行排序(升序) print(self.df) if __name__ == '__main__': myclass = class1() myclass.func1() 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- 语文成绩 数学成绩 英语成绩 班级 最低成绩 李大杰 110.0 105 109 三年一班 105.0 Jacky 105.0 88 120 三年二班 88.0 zhuohua 99.5 115 130 三年二班 99.5 ---------- ---------- Unnamed: 0 语文成绩 数学成绩 英语成绩 班级 最低成绩 0 李大杰 110.0 105 109 三年一班 105.0 1 Jacky 105.0 88 120 三年二班 88.0 2 zhuohua 99.5 115 130 三年二班 99.5 ---------- 姓名 语文成绩 数学成绩 英语成绩 班级 最低成绩 0 李大杰 110.0 105 109 三年一班 105.0 1 Jacky 105.0 88 120 三年二班 88.0 2 zhuohua 99.5 115 130 三年二班 99.5 ---------- 姓名 语文成绩 数学成绩 英语成绩 最低成绩 班级 三年一班 李大杰 110.0 105 109 105.0 三年二班 Jacky 99.5 88 120 88.0 ---------- 分别输出各班级的最低成绩: 姓名 最低成绩 班级 三年一班 李大杰 105.0 三年二班 Jacky 88.0 --- 姓名 最低成绩 班级 三年二班 Jacky 88.0 三年一班 李大杰 105.0 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd class class1(): #自定义一个类 def func1(self): pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) ## 一次性删除列标题为“语文成绩”、“数学成绩”的数据: df.drop(['语文成绩','数学成绩'],axis=1,inplace=True) print(df) print("-" * 10) print("-" * 10) ## 导出到指定的txt文件: df.to_csv('d:/a.txt',sep='\t',index=True,header=True) #保留索引、列标题 self.func2() #执行func2() def func2(self): pd.set_option('display.unicode.east_asian_width',True) df = pd.read_csv('d:/a.txt',sep='\t',encoding='utf-8') #导入指定的txt文件 print(df) print("-" * 10) ## 修改一个列标题 df.rename(columns={'Unnamed: 0':'姓名'},inplace=True) print(df) print("-" * 10) print("分别输出各班级的“英语成绩”的最高成绩:") ## 按“班级”进行分组后求最大值: df = df.groupby('班级').max() print(df) if __name__ == '__main__': myclass = class1() myclass.func1() 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- 英语成绩 班级 李大杰 109 三年一班 Jacky 120 三年二班 zhuohua 130 三年二班 ---------- ---------- Unnamed: 0 英语成绩 班级 0 李大杰 109 三年一班 1 Jacky 120 三年二班 2 zhuohua 130 三年二班 ---------- 姓名 英语成绩 班级 0 李大杰 109 三年一班 1 Jacky 120 三年二班 2 zhuohua 130 三年二班 ---------- 分别输出各班级的“英语成绩”的最高成绩: 姓名 英语成绩 班级 三年一班 李大杰 109 三年二班 zhuohua 130 C:\Users\jacky\Desktop> ###### #coding=utf-8 import pandas as pd class class1(): #自定义一个类 def func1(self): pd.set_option('display.unicode.east_asian_width',True) #使用字典创建DataFrame数据 df=pd.DataFrame( { '语文成绩':[110,105,99.5], '数学成绩':[105,88,115], '英语成绩':[109,120,130], '班级':['三年一班','三年二班','三年二班'] }, index=['李大杰','Jacky','zhuohua']) print(df) print("-" * 10) ## 一次性删除列标题为“语文成绩”、“数学成绩”的数据: df.drop(['语文成绩','数学成绩'],axis=1,inplace=True) print(df) print("-" * 10) print("-" * 10) ## 导出到指定的txt文件: df.to_csv('d:\\a.txt',sep='\t',index=True,header=True) #保留索引、列标题 self.func2() #执行func2() def func2(self): pd.set_option('display.unicode.east_asian_width',True) df = pd.read_csv('d:\\a.txt',sep='\t',encoding='utf-8') #导入指定的txt文件 print(df) print("-" * 10) ## 修改一个列标题 df.rename(columns={'Unnamed: 0':'姓名'},inplace=True) print(df) print("-" * 10) print("分别输出各班级的“英语成绩”的最低成绩:") ## 按“班级”进行分组后求最小值: df = df.groupby('班级').min() print(df) self.df = df self.func3() #执行func3() def func3(self): print("-" * 3) self.df.sort_values(by='英语成绩',ascending=False, inplace=True) #按“英语成绩”进行排序(降序) print(self.df) if __name__ == '__main__': myclass = class1() myclass.func1() 脚本运行的结果: C:\Users\jacky\Desktop>python xx.py 语文成绩 数学成绩 英语成绩 班级 李大杰 110.0 105 109 三年一班 Jacky 105.0 88 120 三年二班 zhuohua 99.5 115 130 三年二班 ---------- 英语成绩 班级 李大杰 109 三年一班 Jacky 120 三年二班 zhuohua 130 三年二班 ---------- ---------- Unnamed: 0 英语成绩 班级 0 李大杰 109 三年一班 1 Jacky 120 三年二班 2 zhuohua 130 三年二班 ---------- 姓名 英语成绩 班级 0 李大杰 109 三年一班 1 Jacky 120 三年二班 2 zhuohua 130 三年二班 ---------- 分别输出各班级的“英语成绩”的最低成绩: 姓名 英语成绩 班级 三年一班 李大杰 109 三年二班 Jacky 120 --- 姓名 英语成绩 班级 三年二班 Jacky 120 三年一班 李大杰 109 C:\Users\jacky\Desktop> 相关文章: Pandas的基础 Pandas的日期时间数据转换 自定义类




欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/) Powered by Discuz! 7.2