返回列表 发帖

Pandas的数据转换

######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

Key_index = ['SP001','SP002','SP003']

Key_columns = ['商品名称+味道','产地']

Key_data = [['蛋糕,草莓味','广东省广州市'],['蛋糕,青瓜味','广东省广州市'],
['面包,番茄味','广东省佛山市']]

df = pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据
print(df)

print("-" * 10)
print("-" * 10)

## 使用split函数分割"商品名称+味道":
Result_1 = df['商品名称+味道'].str.split(',',expand=True) #这里的分隔符为“,”
df['商品名称'] = Result_1[0]
df['味道'] = Result_1[1]

print(df)

print("-" * 10)

## 重新设置各个列的位置:
Result_2 = df[['商品名称+味道','商品名称','味道','产地']]
print(Result_2)

print("-" * 3)

Result_3 = df[['商品名称','味道','产地']]
print(Result_3)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
      商品名称+味道          产地
SP001  蛋糕,草莓味  广东省广州市
SP002  蛋糕,青瓜味  广东省广州市
SP003  面包,番茄味  广东省佛山市
----------
----------
      商品名称+味道          产地 商品名称    味道
SP001  蛋糕,草莓味  广东省广州市     蛋糕  草莓味
SP002  蛋糕,青瓜味  广东省广州市     蛋糕  青瓜味
SP003  面包,番茄味  广东省佛山市     面包  番茄味
----------
      商品名称+味道 商品名称    味道          产地
SP001  蛋糕,草莓味     蛋糕  草莓味  广东省广州市
SP002  蛋糕,青瓜味     蛋糕  青瓜味  广东省广州市
SP003  面包,番茄味     面包  番茄味  广东省佛山市
---
      商品名称    味道          产地
SP001     蛋糕  草莓味  广东省广州市
SP002     蛋糕  青瓜味  广东省广州市
SP003     面包  番茄味  广东省佛山市

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

Key_columns = ['商品编号','商品名称+味道','产地']

Key_data = [['SP001','蛋糕 草莓味','广东省广州市荔湾区'],['SP002','蛋糕 青瓜味','广东省广州市南沙区'],
['SP003','面包 番茄味','广东省佛山市南海区']]

df = pd.DataFrame(data=Key_data,columns=Key_columns) #使用二维数组创建DataFrame数据

df = df.set_index(['商品编号']) #设置指定列的数据为索引

print(df)

print("-" * 10)
print("-" * 10)

## 使用split函数分割"商品名称+味道":
Result_1 = df['商品名称+味道'].str.split(' ',expand=True) #这里的分隔符为空格
df['商品名称'] = Result_1[0]
df['味道'] = Result_1[1]

print(df)

print("-" * 10)

## 重新设置各个列的位置:
Result_2 = df.reindex(columns=['商品名称+味道','商品名称','味道','产地'])
print(Result_2)

print("-" * 3)

Result_3 = df.reindex(columns=['商品名称','味道','产地'])
print(Result_3)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         商品名称+味道                产地
商品编号
SP001      蛋糕 草莓味  广东省广州市荔湾区
SP002      蛋糕 青瓜味  广东省广州市南沙区
SP003      面包 番茄味  广东省佛山市南海区
----------
----------
         商品名称+味道                产地 商品名称    味道
商品编号
SP001      蛋糕 草莓味  广东省广州市荔湾区     蛋糕  草莓味
SP002      蛋糕 青瓜味  广东省广州市南沙区     蛋糕  青瓜味
SP003      面包 番茄味  广东省佛山市南海区     面包  番茄味
----------
         商品名称+味道 商品名称    味道                产地
商品编号
SP001      蛋糕 草莓味     蛋糕  草莓味  广东省广州市荔湾区
SP002      蛋糕 青瓜味     蛋糕  青瓜味  广东省广州市南沙区
SP003      面包 番茄味     面包  番茄味  广东省佛山市南海区
---
         商品名称    味道                产地
商品编号
SP001        蛋糕  草莓味  广东省广州市荔湾区
SP002        蛋糕  青瓜味  广东省广州市南沙区
SP003        面包  番茄味  广东省佛山市南海区

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

Key_index = ['李大杰','Jacky','zhuohua']

Key_columns = ['商品名称','收货地址']

Key_data = [['蛋糕,草莓味','广东省广州市荔湾区A街道100号'],['蛋糕,青瓜味','广西省南宁市江南区B街道200号'],
['面包,番茄味','广东省佛山市南海区C街道300号']]

df = pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据
print(df)

print("-" * 10)
print("-" * 10)

## 使用split函数分割"收货地址":
Result_1 = df['收货地址'].str.split('省',expand=True) #这里的分隔符为“省”
df['省'] = Result_1[0]

print(df)

print("-" * 10)

df['省份'] = Result_1[0] + '省'

print(df)

print("-" * 10)

## 删除列标题为“商品名称”的数据:
df.drop(['商品名称'],axis=1,inplace=True)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
             商品名称                      收货地址
李大杰   蛋糕,草莓味  广东省广州市荔湾区A街道100号
Jacky    蛋糕,青瓜味  广西省南宁市江南区B街道200号
zhuohua  面包,番茄味  广东省佛山市南海区C街道300号
----------
----------
             商品名称                      收货地址    省
李大杰   蛋糕,草莓味  广东省广州市荔湾区A街道100号  广东
Jacky    蛋糕,青瓜味  广西省南宁市江南区B街道200号  广西
zhuohua  面包,番茄味  广东省佛山市南海区C街道300号  广东
----------
             商品名称                      收货地址    省    省份
李大杰   蛋糕,草莓味  广东省广州市荔湾区A街道100号  广东  广东省
Jacky    蛋糕,青瓜味  广西省南宁市江南区B街道200号  广西  广西省
zhuohua  面包,番茄味  广东省佛山市南海区C街道300号  广东  广东省
----------
                             收货地址    省    省份
李大杰   广东省广州市荔湾区A街道100号  广东  广东省
Jacky    广西省南宁市江南区B街道200号  广西  广西省
zhuohua  广东省佛山市南海区C街道300号  广东  广东省

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

Key_columns = ['收货人','商品名称','收货地址']

Key_data = [['李大杰','蛋糕,草莓味','广东省广州市荔湾区A街道100号'],['Jacky','蛋糕,青瓜味','广西省南宁市江南区B街道200号'],
['zhuohua','面包,番茄味','广东省佛山市南海区C街道300号']]

df = pd.DataFrame(data=Key_data,columns=Key_columns) #使用二维数组创建DataFrame数据

df = df.set_index(['收货人']) #设置指定列的数据为索引

print(df)

print("-" * 10)
print("-" * 10)

## 使用split函数分割"收货地址":
Result_1 = df['收货地址'].str.split('省',expand=True) #这里的分隔符为“省”
df['省'] = Result_1[0]

print(df)

print("-" * 10)

df['省份'] = Result_1[0] + '省'

print(df)

print("-" * 10)

## 一次性删除列标题为“商品名称”、“收货地址”的数据:
df.drop(['商品名称','收货地址'],axis=1,inplace=True)

print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
             商品名称                      收货地址
收货人
李大杰   蛋糕,草莓味  广东省广州市荔湾区A街道100号
Jacky    蛋糕,青瓜味  广西省南宁市江南区B街道200号
zhuohua  面包,番茄味  广东省佛山市南海区C街道300号
----------
----------
             商品名称                      收货地址    省
收货人
李大杰   蛋糕,草莓味  广东省广州市荔湾区A街道100号  广东
Jacky    蛋糕,青瓜味  广西省南宁市江南区B街道200号  广西
zhuohua  面包,番茄味  广东省佛山市南海区C街道300号  广东
----------
             商品名称                      收货地址    省    省份
收货人
李大杰   蛋糕,草莓味  广东省广州市荔湾区A街道100号  广东  广东省
Jacky    蛋糕,青瓜味  广西省南宁市江南区B街道200号  广西  广西省
zhuohua  面包,番茄味  广东省佛山市南海区C街道300号  广东  广东省
----------
           省    省份
收货人
李大杰   广东  广东省
Jacky    广西  广西省
zhuohua  广东  广东省

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

Key_index = ['李大杰','Jacky','zhuohua']

Key_columns = ['商品名称','收货地址']

Key_data = [['蛋糕,草莓味','广东省广州市荔湾区A街道100号'],['蛋糕,青瓜味','广西省南宁市江南区B街道200号'],
['面包,番茄味','广东省佛山市南海区C街道300号']]

df = pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据
print(df)

print("-" * 10)
print("-" * 10)

## 删除列标题为“商品名称”的数据:
df.drop(['商品名称'],axis=1,inplace=True)
print(df)

print("-" * 10)

## 使用split函数分割"收货地址":
Result_1 = df['收货地址'].str.split('省',expand=True) #这里的分隔符为“省”
df['省份'] = Result_1[0] + '省'
print(df)

print("-" * 10)

df['收货地址(不包含省份)'] = Result_1[1]
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
             商品名称                      收货地址
李大杰   蛋糕,草莓味  广东省广州市荔湾区A街道100号
Jacky    蛋糕,青瓜味  广西省南宁市江南区B街道200号
zhuohua  面包,番茄味  广东省佛山市南海区C街道300号
----------
----------
                             收货地址
李大杰   广东省广州市荔湾区A街道100号
Jacky    广西省南宁市江南区B街道200号
zhuohua  广东省佛山市南海区C街道300号
----------
                             收货地址    省份
李大杰   广东省广州市荔湾区A街道100号  广东省
Jacky    广西省南宁市江南区B街道200号  广西省
zhuohua  广东省佛山市南海区C街道300号  广东省
----------
                             收货地址    省份  收货地址(不包含省份)
李大杰   广东省广州市荔湾区A街道100号  广东省  广州市荔湾区A街道100号
Jacky    广西省南宁市江南区B街道200号  广西省  南宁市江南区B街道200号
zhuohua  广东省佛山市南海区C街道300号  广东省  佛山市南海区C街道300号

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

Key_index = ['李大杰','Jacky','zhuohua']

Key_columns = ['商品名称','收货地址']

Key_data = [['蛋糕,草莓味','广东省广州市荔湾区A街道100号'],['蛋糕,青瓜味','广西省南宁市江南区B街道200号'],
['面包,番茄味','广东省佛山市南海区C街道300号']]

df = pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据
print(df)

print("-" * 10)
print("-" * 10)

## 删除列标题为“商品名称”的数据:
df.drop(['商品名称'],axis=1,inplace=True)
print(df)

print("-" * 10)

## 使用split函数分割"收货地址":
df['街道牌号'] = df['收货地址'].str.split('区',expand=True)[1] #这里的分隔符为“区”

Result_1 = df['收货地址'].str.split('区',expand=True)[0] #这里的分隔符为“区”
Result_2 = Result_1.str.split('市',expand=True)[1] #这里的分隔符为“市”
df['区'] = Result_2 + '区'

Result_3 = Result_1.str.split('市',expand=True)[0] #这里的分隔符为“市”
Result_4 = Result_3.str.split('省',expand=True)[1] #这里的分隔符为“省”
df['城市'] = Result_4 + '市'

Result_5 = Result_3.str.split('省',expand=True)[0] #这里的分隔符为“省”
df['省份'] = Result_5 + '省'

print(df)

print("-" * 10)

## 重新设置各个列的位置:
df_2 = df.reindex(columns=['省份','城市','区','街道牌号'])
print(df_2)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
             商品名称                      收货地址
李大杰   蛋糕,草莓味  广东省广州市荔湾区A街道100号
Jacky    蛋糕,青瓜味  广西省南宁市江南区B街道200号
zhuohua  面包,番茄味  广东省佛山市南海区C街道300号
----------
----------
                             收货地址
李大杰   广东省广州市荔湾区A街道100号
Jacky    广西省南宁市江南区B街道200号
zhuohua  广东省佛山市南海区C街道300号
----------
                             收货地址    街道牌号      区    城市    省份
李大杰   广东省广州市荔湾区A街道100号  A街道100号  荔湾区  广州市  广东省
Jacky    广西省南宁市江南区B街道200号  B街道200号  江南区  南宁市  广西省
zhuohua  广东省佛山市南海区C街道300号  C街道300号  南海区  佛山市  广东省
----------
           省份    城市      区    街道牌号
李大杰   广东省  广州市  荔湾区  A街道100号
Jacky    广西省  南宁市  江南区  B街道200号
zhuohua  广东省  佛山市  南海区  C街道300号

C:\Users\jacky\Desktop>










######
######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame({
'A列':[1,2,3,4,5],
'B列':[[1,2],[3,'李大杰'],[5,6],[7,8],[9,10]]
})

print(df)

print("-" * 10)
print("-" * 10)

df[['B列_1','B列_2']] = df['B列'].apply(pd.Series) #使用apply函数对列表进行分割

print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
   A列          B列
0    1       [1, 2]
1    2  [3, 李大杰]
2    3       [5, 6]
3    4       [7, 8]
4    5      [9, 10]
----------
----------
   A列          B列  B列_1   B列_2
0    1       [1, 2]      1       2
1    2  [3, 李大杰]      3  李大杰
2    3       [5, 6]      5       6
3    4       [7, 8]      7       8
4    5      [9, 10]      9      10

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame({
'A列':[1,2,3,4,5],
'B列':[(1,2),(3,'D'),(5,6),('zhuohua',8),(9,18)]
})

print(df)

print("-" * 10)
print("-" * 10)

## 删除列标题为“A列”的数据:
df.drop(['A列'],axis=1,inplace=True)
print(df)

print("-" * 10)

df[['b1','b2']] = df['B列'].apply(pd.Series) #使用apply函数对元组进行分割

print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
   A列           B列
0    1        (1, 2)
1    2        (3, D)
2    3        (5, 6)
3    4  (zhuohua, 8)
4    5       (9, 18)
----------
----------
            B列
0        (1, 2)
1        (3, D)
2        (5, 6)
3  (zhuohua, 8)
4       (9, 18)
----------
            B列       b1  b2
0        (1, 2)        1   2
1        (3, D)        3   D
2        (5, 6)        5   6
3  (zhuohua, 8)  zhuohua   8
4       (9, 18)        9  18

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame({
'A列':[1,2,3,4,5],
'B列':[[1,2],[3,'zhuohua'],[5,6],[7,8],[9,10]]
})

print(df)

print("-" * 10)
print("-" * 10)

df = df.join(df['B列'].apply(pd.Series)) #使用join函数结合apply函数对列表进行分割

print(df)

print("-" * 10)

## 修改多个列标题:
df.rename(columns={0:'B列_1',1:'B列_2'},inplace=True)
print(df)

print("-" * 10)

## 一次性删除列标题为“A列”、“B列”的数据:
df.drop(['A列','B列'],axis=1,inplace=True)
print(df)

print("-" * 10)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
   A列           B列
0    1        [1, 2]
1    2  [3, zhuohua]
2    3        [5, 6]
3    4        [7, 8]
4    5       [9, 10]
----------
----------
   A列           B列  0        1
0    1        [1, 2]  1        2
1    2  [3, zhuohua]  3  zhuohua
2    3        [5, 6]  5        6
3    4        [7, 8]  7        8
4    5       [9, 10]  9       10
----------
   A列           B列  B列_1    B列_2
0    1        [1, 2]      1        2
1    2  [3, zhuohua]      3  zhuohua
2    3        [5, 6]      5        6
3    4        [7, 8]      7        8
4    5       [9, 10]      9       10
----------
   B列_1    B列_2
0      1        2
1      3  zhuohua
2      5        6
3      7        8
4      9       10
----------
B列_1    B列_2
     1        2
     3  zhuohua
     5        6
     7        8
     9       10

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame({
'A列':[1,2,3,4,5],
'B列':[(1,2),(3,'李大杰'),(5,6),(7,8),(9,10)]
})

print(df)

print("-" * 10)
print("-" * 10)

df = df.join(df['B列'].apply(pd.Series)) #使用join函数结合apply函数对元组进行分割

print(df)

print("-" * 10)

## 修改多个列标题:
df.rename(columns={0:'b1',1:'b2'},inplace=True)
print(df)

print("-" * 10)

## 删除列标题为“A列”的数据:
df.drop(['A列'],axis=1,inplace=True)
print(df)

print("-" * 10)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
   A列          B列
0    1       (1, 2)
1    2  (3, 李大杰)
2    3       (5, 6)
3    4       (7, 8)
4    5      (9, 10)
----------
----------
   A列          B列  0       1
0    1       (1, 2)  1       2
1    2  (3, 李大杰)  3  李大杰
2    3       (5, 6)  5       6
3    4       (7, 8)  7       8
4    5      (9, 10)  9      10
----------
   A列          B列  b1      b2
0    1       (1, 2)   1       2
1    2  (3, 李大杰)   3  李大杰
2    3       (5, 6)   5       6
3    4       (7, 8)   7       8
4    5      (9, 10)   9      10
----------
           B列  b1      b2
0       (1, 2)   1       2
1  (3, 李大杰)   3  李大杰
2       (5, 6)   5       6
3       (7, 8)   7       8
4      (9, 10)   9      10
----------
         B列  b1      b2
      (1, 2)   1       2
(3, 李大杰)   3  李大杰
      (5, 6)   5       6
      (7, 8)   7       8
     (9, 10)   9      10

C:\Users\jacky\Desktop>










######
######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年一班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame转换为字典时,主要使用DataFrame对象中的to_dict方法,以索引作为字典的键(key),以列作为字典的值(value):

print("分别输出各个班级的数学成绩的总和:")

df1 = df.groupby(["班级"])["数学成绩"].sum()

mydict = df1.to_dict()

for i,j in mydict.items():
        print(i,':\t', j)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年一班
----------
----------
分别输出各个班级的数学成绩的总和:
三年一班 :       221
三年二班 :       88

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年一班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame转换为字典时,主要使用DataFrame对象中的to_dict方法,以索引作为字典的键(key),以列作为字典的值(value):

print("分别输出各个班级的数学成绩的平均值:")

df1 = df.groupby(["班级"])["数学成绩"].mean()

mydict = df1.to_dict()

for i,j in mydict.items():
        print(i,':\t',j)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年一班
----------
----------
分别输出各个班级的数学成绩的平均值:
三年一班 :       110.5
三年二班 :       88.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(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年一班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame转换为字典时,主要使用DataFrame对象中的to_dict方法,以索引作为字典的键(key),以列作为字典的值(value):

print("分别输出各个班级的数学成绩的最大值:")

df1 = df.groupby(["班级"])["数学成绩"].max()

mydict = df1.to_dict()

for i,j in mydict.items():
        print(i,':\t',j)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年一班
----------
----------
分别输出各个班级的数学成绩的最大值:
三年一班 :       115
三年二班 :       88

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年一班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame转换为字典时,主要使用DataFrame对象中的to_dict方法,以索引作为字典的键(key),以列作为字典的值(value):

print("分别输出各个班级的数学成绩的最小值:")

df1 = df.groupby(["班级"])["数学成绩"].min()

mydict = df1.to_dict()

for i,j in mydict.items():
        print(i,':\t',j)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年一班
----------
----------
分别输出各个班级的数学成绩的最小值:
三年一班 :       106
三年二班 :       88

C:\Users\jacky\Desktop>










######
######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年三班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame对象转换为列表时,可以使用DataFrame对象中的的tolist方法:

print('输出“班级”那一列的前两行数据:(以列表的形式显示)')

df1 = df[['班级']].head(2)

list1 = df1['班级'].values.tolist()

print(type(list1))

for Key_1 in list1:
        print(Key_1)

print("-" * 10)

print('输出“班级”那一列的前三行数据:(以列表的形式显示)')

df2 = df[['班级']].head(3)

list2 = df2['班级'].values.tolist()

print(type(list2))

for Key_2 in list2:
        print(Key_2)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年三班
----------
----------
输出“班级”那一列的前两行数据:(以列表的形式显示)
<class 'list'>
三年一班
三年二班
----------
输出“班级”那一列的前三行数据:(以列表的形式显示)
<class 'list'>
三年一班
三年二班
三年三班

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年三班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame对象转换为列表时,可以使用DataFrame对象中的的tolist方法:

print('输出“班级”那一列的全部数据:(以列表的形式显示)')

df1 = df[['班级']]

list1 = df1['班级'].values.tolist()

for Key_1 in list1:
        print(Key_1)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年三班
----------
----------
输出“班级”那一列的全部数据:(以列表的形式显示)
三年一班
三年二班
三年三班

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年三班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame对象转换为列表时,可以先通过循环语句按行读取DataFrame数据,然后使用列表函数list将其转换为列表:

print('输出“班级”那一列的前两行数据:(以列表的形式显示)')

df1 = df[['班级']].head(2)

list1 = [list(x) for x in df1.values]

print(type(list1))

for Key_1 in list1:
        print(Key_1)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年三班
----------
----------
输出“班级”那一列的前两行数据:(以列表的形式显示)
<class 'list'>
['三年一班']
['三年二班']

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年三班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame对象转换为列表时,可以先通过循环语句按行读取DataFrame数据,然后使用列表函数list将其转换为列表:

print('输出“班级”那一列的全部数据:(以列表的形式显示)')

df1 = df[['班级']]

list1 = [list(x) for x in df1.values]

for Key_1 in list1:
        print(Key_1)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年三班
----------
----------
输出“班级”那一列的全部数据:(以列表的形式显示)
['三年一班']
['三年二班']
['三年三班']

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年三班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame对象转换为列表时,可以先通过循环语句按行读取DataFrame数据,然后使用列表函数list将其转换为列表:

print('输出“班级”、“数学成绩”这两列的前两行数据:(以列表的形式显示)')

df1 = df[['班级','数学成绩']].head(2)

list1 = [list(x) for x in df1.values]

print(type(list1))

for Key_1 in list1:
        print(Key_1)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年三班
----------
----------
输出“班级”、“数学成绩”这两列的前两行数据:(以列表的形式显示)
<class 'list'>
['三年一班', 106]
['三年二班', 88]

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年三班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame对象转换为列表时,可以先通过循环语句按行读取DataFrame数据,然后使用列表函数list将其转换为列表:

print('输出“班级”、“数学成绩”这两列的全部数据:(以列表的形式显示)')

df1 = df[['班级','数学成绩']]

list1 = [list(x) for x in df1.values]

for Key_1 in list1:
        print(Key_1)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年三班
----------
----------
输出“班级”、“数学成绩”这两列的全部数据:(以列表的形式显示)
['三年一班', 106]
['三年二班', 88]
['三年三班', 115]

C:\Users\jacky\Desktop>





######
######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年三班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame对象转换为元组时,可以先通过循环语句按行读取DataFrame数据,然后使用元组函数tuple将其转换为元组:

print('输出“班级”那一列的前两行数据:(以元组的形式显示)')

df1 = df[['班级']].head(2)

tuple1 = [tuple(x) for x in df1.values]

print(type(tuple1))

for Key_1 in tuple1:
        print(Key_1)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年三班
----------
----------
输出“班级”那一列的前两行数据:(以元组的形式显示)
<class 'list'>
('三年一班',)
('三年二班',)

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年三班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame对象转换为元组时,可以先通过循环语句按行读取DataFrame数据,然后使用元组函数tuple将其转换为元组:

print('输出“班级”那一列的全部数据:(以元组的形式显示)')

df1 = df[['班级']]

tuple1 = [tuple(x) for x in df1.values]

for Key_1 in tuple1:
        print(Key_1)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年三班
----------
----------
输出“班级”那一列的全部数据:(以元组的形式显示)
('三年一班',)
('三年二班',)
('三年三班',)

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年三班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame对象转换为元组时,可以先通过循环语句按行读取DataFrame数据,然后使用元组函数tuple将其转换为元组:

print('输出“班级”、“数学成绩”这两列的前两行数据:(以元组的形式显示)')

df1 = df[['班级','数学成绩']].head(2)

tuple1 = [tuple(x) for x in df1.values]

print(type(tuple1))

for Key_1 in tuple1:
        print(Key_1)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年三班
----------
----------
输出“班级”、“数学成绩”这两列的前两行数据:(以元组的形式显示)
<class 'list'>
('三年一班', 106)
('三年二班', 88)

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df = pd.DataFrame(
{
'语文成绩':[111,105,99.5],
'数学成绩':[106,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年三班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 将DataFrame对象转换为元组时,可以先通过循环语句按行读取DataFrame数据,然后使用元组函数tuple将其转换为元组:

print('输出“班级”、“数学成绩”这两列的全部数据:(以元组的形式显示)')

df1 = df[['班级','数学成绩']]

tuple1 = [tuple(x) for x in df1.values]

for Key_1 in tuple1:
        print(Key_1)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      111.0       106       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年三班
----------
----------
输出“班级”、“数学成绩”这两列的全部数据:(以元组的形式显示)
('三年一班', 106)
('三年二班', 88)
('三年三班', 115)

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('班级').mean()

print(df)

print("-" * 3)

df.rename(columns={'语文成绩':'语文成绩的平均值'},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  三年一班
Jacky       105.0  三年二班
zhuohua      99.5  三年二班
----------
分别输出各班级的“语文成绩”的平均成绩:
          语文成绩
班级
三年一班    110.00
三年二班    102.25
---
          语文成绩的平均值
班级
三年一班            110.00
三年二班            102.25
---
          语文成绩的平均值
班级
三年二班            102.25
三年一班            110.00

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('班级').mean().reset_index()

print(df)

print("-" * 3)

df.rename(columns={'语文成绩':'语文成绩的平均值'},inplace=True) #修改一个列标题
print(df)

print("-" * 3)

df.sort_values(by='语文成绩的平均值',ascending=True, inplace=True) #按“语文成绩的平均值”进行排序(升序)
print(df)

print("-" * 3)

## 不输出索引:
df = df.to_string(index=False)
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  三年一班
Jacky       105.0  三年二班
zhuohua      99.5  三年二班
----------
分别输出各班级的“语文成绩”的平均成绩:
       班级  语文成绩
0  三年一班    110.00
1  三年二班    102.25
---
       班级  语文成绩的平均值
0  三年一班            110.00
1  三年二班            102.25
---
       班级  语文成绩的平均值
1  三年二班            102.25
0  三年一班            110.00
---
     班级  语文成绩的平均值
三年二班            102.25
三年一班            110.00

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)

print("分别输出各班级的“语文成绩”的平均成绩:")

## 按“班级”进行分组后,求“语文成绩”的平均值,并且重新设置索引:(按一列分组统计)
df = df.groupby('班级')['语文成绩'].mean().reset_index()

print(df)

print("-" * 3)

df.rename(columns={'语文成绩':'语文成绩的平均值'},inplace=True) #修改一个列标题
print(df)

print("-" * 3)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      110.0       105       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年二班
----------
----------
分别输出各班级的“语文成绩”的平均成绩:
       班级  语文成绩
0  三年一班    110.00
1  三年二班    102.25
---
       班级  语文成绩的平均值
0  三年一班            110.00
1  三年二班            102.25
---
     班级  语文成绩的平均值
三年一班            110.00
三年二班            102.25

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.groupby('班级')['数学成绩'].sum().reset_index()

print(df)

print("-" * 3)

df.rename(columns={'数学成绩':'数学成绩的总和'},inplace=True) #修改一个列标题
print(df)

print("-" * 3)

df.sort_values(by='数学成绩的总和',ascending=False, inplace=True) #按“数学成绩的总和”进行排序(降序)
print(df)

print("-" * 3)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      110.0       105       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年二班
----------
----------
       班级  数学成绩
0  三年一班       105
1  三年二班       203
---
       班级  数学成绩的总和
0  三年一班             105
1  三年二班             203
---
       班级  数学成绩的总和
1  三年二班             203
0  三年一班             105
---
     班级  数学成绩的总和
三年二班             203
三年一班             105

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.groupby('班级')['数学成绩'].sum().reset_index()

print(df)

print("-" * 3)

df.rename(columns={'数学成绩':'数学成绩的总和'},inplace=True) #修改一个列标题
print(df)

print("-" * 3)

df.sort_values(by='数学成绩的总和',ascending=False, inplace=True) #按“数学成绩的总和”进行排序(降序)
print(df)

print("-" * 10)
print("-" * 10)

## “顺序排名”那一列的数据自己进行升序(method="first",ascending=False)
df['顺序排名']=df['数学成绩的总和'].rank(method="first",ascending=False)
print(df)

print("-" * 3)

df['顺序排名'] = df['顺序排名'].astype(int) #列标题为“顺序排名”的数据不保留小数
print(df)

print("-" * 3)

df = df.reindex(columns=['顺序排名','数学成绩的总和','班级']) #重新设置各个列的位置
print(df)

print("-" * 3)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      110.0       105       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年二班
----------
----------
       班级  数学成绩
0  三年一班       105
1  三年二班       203
---
       班级  数学成绩的总和
0  三年一班             105
1  三年二班             203
---
       班级  数学成绩的总和
1  三年二班             203
0  三年一班             105
----------
----------
       班级  数学成绩的总和  顺序排名
1  三年二班             203       1.0
0  三年一班             105       2.0
---
       班级  数学成绩的总和  顺序排名
1  三年二班             203         1
0  三年一班             105         2
---
   顺序排名  数学成绩的总和      班级
1         1             203  三年二班
0         2             105  三年一班
---
顺序排名  数学成绩的总和      班级
        1             203  三年二班
        2             105  三年一班

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],
'数学成绩':[1050,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年二班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 按“班级”进行分组后,求“数学成绩”的总和,并且重新设置索引:(按一列分组统计)
df = df.groupby('班级')['数学成绩'].sum().reset_index()

print(df)

print("-" * 3)

df.rename(columns={'数学成绩':'数学成绩的总和'},inplace=True) #修改一个列标题
print(df)

print("-" * 3)

df.sort_values(by='数学成绩的总和',ascending=False, inplace=True) #按“数学成绩的总和”进行排序(降序)
print(df)

print("-" * 10)
print("-" * 10)

## “顺序排名”那一列的数据自己进行升序(method="max",ascending=False)
df['顺序排名']=df['数学成绩的总和'].rank(method="max",ascending=False)
print(df)

print("-" * 3)

df['顺序排名'] = df['顺序排名'].astype(int) #列标题为“顺序排名”的数据不保留小数
print(df)

print("-" * 3)

df = df.reindex(columns=['顺序排名','数学成绩的总和','班级']) #重新设置各个列的位置
print(df)

print("-" * 3)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      110.0      1050       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年二班
----------
----------
       班级  数学成绩
0  三年一班      1050
1  三年二班       203
---
       班级  数学成绩的总和
0  三年一班            1050
1  三年二班             203
---
       班级  数学成绩的总和
0  三年一班            1050
1  三年二班             203
----------
----------
       班级  数学成绩的总和  顺序排名
0  三年一班            1050       1.0
1  三年二班             203       2.0
---
       班级  数学成绩的总和  顺序排名
0  三年一班            1050         1
1  三年二班             203         2
---
   顺序排名  数学成绩的总和      班级
0         1            1050  三年一班
1         2             203  三年二班
---
顺序排名  数学成绩的总和      班级
        1            1050  三年一班
        2             203  三年二班

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],
'数学成绩':[1050,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年二班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 按“班级”进行分组后,求“数学成绩”的总和,并且重新设置索引:(按一列分组统计)
df = df.groupby('班级')['数学成绩'].sum().reset_index()

print(df)

print("-" * 3)

df.rename(columns={'数学成绩':'数学成绩的总和'},inplace=True) #修改一个列标题
print(df)

print("-" * 3)

df.sort_values(by='数学成绩的总和',ascending=True, inplace=True) #按“数学成绩的总和”进行排序(升序)
print(df)

print("-" * 10)
print("-" * 10)

## “顺序排名”那一列的数据自己进行升序(method="min",ascending=True)
df['顺序排名']=df['数学成绩的总和'].rank(method="min",ascending=True)
print(df)

print("-" * 3)

df['顺序排名'] = df['顺序排名'].astype(int) #列标题为“顺序排名”的数据不保留小数
print(df)

print("-" * 3)

df = df.reindex(columns=['顺序排名','数学成绩的总和','班级']) #重新设置各个列的位置
print(df)

print("-" * 3)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      110.0      1050       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年二班
----------
----------
       班级  数学成绩
0  三年一班      1050
1  三年二班       203
---
       班级  数学成绩的总和
0  三年一班            1050
1  三年二班             203
---
       班级  数学成绩的总和
1  三年二班             203
0  三年一班            1050
----------
----------
       班级  数学成绩的总和  顺序排名
1  三年二班             203       1.0
0  三年一班            1050       2.0
---
       班级  数学成绩的总和  顺序排名
1  三年二班             203         1
0  三年一班            1050         2
---
   顺序排名  数学成绩的总和      班级
1         1             203  三年二班
0         2            1050  三年一班
---
顺序排名  数学成绩的总和      班级
        1             203  三年二班
        2            1050  三年一班

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],
'数学成绩':[1050,88,115],
'英语成绩':[109,120,130],
'班级':['三年一班','三年二班','三年二班']
},
index=['李大杰','Jacky','zhuohua'])

print(df)

print("-" * 10)
print("-" * 10)

## 按“班级”进行分组后,求“数学成绩”的总和,并且重新设置索引:(按一列分组统计)
df = df.groupby('班级')['数学成绩'].sum().reset_index()

print(df)

print("-" * 3)

df.rename(columns={'数学成绩':'数学成绩的总和'},inplace=True) #修改一个列标题
print(df)

print("-" * 3)

df.sort_values(by='数学成绩的总和',ascending=True, inplace=True) #按“数学成绩的总和”进行排序(升序)
print(df)

print("-" * 10)
print("-" * 10)

## “顺序排名”那一列的数据自己进行降序(method="min",ascending=False)
df['顺序排名']=df['数学成绩的总和'].rank(method="min",ascending=False)
print(df)

print("-" * 3)

df['顺序排名'] = df['顺序排名'].astype(int) #列标题为“顺序排名”的数据不保留小数
print(df)

print("-" * 3)

df = df.reindex(columns=['顺序排名','数学成绩的总和','班级']) #重新设置各个列的位置
print(df)

print("-" * 3)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
         语文成绩  数学成绩  英语成绩      班级
李大杰      110.0      1050       109  三年一班
Jacky       105.0        88       120  三年二班
zhuohua      99.5       115       130  三年二班
----------
----------
       班级  数学成绩
0  三年一班      1050
1  三年二班       203
---
       班级  数学成绩的总和
0  三年一班            1050
1  三年二班             203
---
       班级  数学成绩的总和
1  三年二班             203
0  三年一班            1050
----------
----------
       班级  数学成绩的总和  顺序排名
1  三年二班             203       2.0
0  三年一班            1050       1.0
---
       班级  数学成绩的总和  顺序排名
1  三年二班             203         2
0  三年一班            1050         1
---
   顺序排名  数学成绩的总和      班级
1         2             203  三年二班
0         1            1050  三年一班
---
顺序排名  数学成绩的总和      班级
        2             203  三年二班
        1            1050  三年一班

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,'三年一班','三年级'],[66,77,99,'三年二班','三年级'],
[108,88,115,'三年一班','三年级'],[115,28,65,'三年二班','三年级'],
[109,120,129.5,'四年一班','四年级']]

Key_index=['李大杰','小红','Jacky','Lily','zhuohua wu']

Key_columns=['语文成绩','数学成绩','英语成绩','班级','年级']

df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据
print(df)

print("-" * 10)
print("-" * 10)

## 一次性删除列标题为“英语成绩”、“数学成绩”的数据:
df.drop(['英语成绩','数学成绩'],axis=1,inplace=True)

print(df)

print("-" * 10)

print("分别输出各班级的“语文成绩”的平均成绩:")

## 先按“年级”进行分组,再按“班级”进行分组后,求平均值,并且重新设置索引:(按多列分组统计)
df = df.groupby(['年级','班级']).mean().reset_index()

print(df)

print("-" * 3)

df.rename(columns={'语文成绩':'语文成绩的平均值'},inplace=True) #修改一个列标题
print(df)

print("-" * 3)

df.sort_values(by='语文成绩的平均值',ascending=True, inplace=True) #按“语文成绩的平均值”进行排序(升序)

print(df)

print("-" * 3)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
            语文成绩  数学成绩  英语成绩      班级    年级
李大杰           110       105      99.0  三年一班  三年级
小红              66        77      99.0  三年二班  三年级
Jacky            108        88     115.0  三年一班  三年级
Lily             115        28      65.0  三年二班  三年级
zhuohua wu       109       120     129.5  四年一班  四年级
----------
----------
            语文成绩      班级    年级
李大杰           110  三年一班  三年级
小红              66  三年二班  三年级
Jacky            108  三年一班  三年级
Lily             115  三年二班  三年级
zhuohua wu       109  四年一班  四年级
----------
分别输出各班级的“语文成绩”的平均成绩:
     年级      班级  语文成绩
0  三年级  三年一班     109.0
1  三年级  三年二班      90.5
2  四年级  四年一班     109.0
---
     年级      班级  语文成绩的平均值
0  三年级  三年一班             109.0
1  三年级  三年二班              90.5
2  四年级  四年一班             109.0
---
     年级      班级  语文成绩的平均值
1  三年级  三年二班              90.5
0  三年级  三年一班             109.0
2  四年级  四年一班             109.0
---
   年级      班级  语文成绩的平均值
三年级  三年二班              90.5
三年级  三年一班             109.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,105,99,'三年一班','三年级'],[66,77,99,'三年二班','三年级'],
[108,88,115,'三年一班','三年级'],[115,28,65,'三年二班','三年级'],
[106,120,129.5,'四年一班','四年级']]

Key_index=['李大杰','小红','Jacky','Lily','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.groupby(['年级','班级'])['语文成绩'].mean().reset_index()

print(df)

print("-" * 3)

df.rename(columns={'语文成绩':'语文成绩的平均值'},inplace=True) #修改一个列标题
print(df)

print("-" * 3)

df.sort_values(by='语文成绩的平均值',ascending=False, inplace=True) #按“语文成绩的平均值”进行排序(降序)

print(df)

print("-" * 3)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
            语文成绩  数学成绩  英语成绩      班级    年级
李大杰           110       105      99.0  三年一班  三年级
小红              66        77      99.0  三年二班  三年级
Jacky            108        88     115.0  三年一班  三年级
Lily             115        28      65.0  三年二班  三年级
zhuohua wu       106       120     129.5  四年一班  四年级
----------
----------
分别输出各班级的“语文成绩”的平均成绩:
     年级      班级  语文成绩
0  三年级  三年一班     109.0
1  三年级  三年二班      90.5
2  四年级  四年一班     106.0
---
     年级      班级  语文成绩的平均值
0  三年级  三年一班             109.0
1  三年级  三年二班              90.5
2  四年级  四年一班             106.0
---
     年级      班级  语文成绩的平均值
0  三年级  三年一班             109.0
2  四年级  四年一班             106.0
1  三年级  三年二班              90.5
---
   年级      班级  语文成绩的平均值
三年级  三年一班             109.0
四年级  四年一班             106.0
三年级  三年二班              90.5

C:\Users\jacky\Desktop>










Pandas的导出和导入(xlsx文件):


Win7连接公网安装第三方库(xlwt):
C:\Users\jacky\Desktop>pip3 install xlwt==1.3.0 -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com

Win7连接公网安装第三方库(xlrd):
C:\Users\jacky\Desktop>pip3 install xlrd==1.2.0 -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com

Win7连接公网安装第三方库(openpyxl):
C:\Users\jacky\Desktop>pip3 install openpyxl==3.1.2 -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com


列出当前环境所有已经安装的第三方库的名称和其版本号:
C:\Users\jacky\Desktop>pip3 freeze
et-xmlfile==1.1.0
numpy==1.19.5
openpyxl==3.1.2
pandas==1.1.5
python-dateutil==2.8.2
pytz==2023.3
six==1.16.0
xlrd==1.2.0
xlwt==1.3.0


C:\Users\jacky\Desktop>





######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

Key_columns = ['商品编号','商品名称+味道','产地']

Key_data = [['SP001','蛋糕:草莓味','广东省广州市荔湾区'],['SP002','蛋糕:青瓜味','广东省广州市南沙区'],
['SP003','面包:番茄味','广东省佛山市南海区']]

df = pd.DataFrame(data=Key_data,columns=Key_columns) #使用二维数组创建DataFrame数据

df = df.set_index(['商品编号']) #设置指定列的数据为索引

print(df)

print("-" * 10)
print("-" * 10)

## 使用split函数分割"商品名称+味道":
Result_1 = df['商品名称+味道'].str.split(':',expand=True) #这里的分隔符为“:”
df['商品名称'] = Result_1[0]
df['味道'] = Result_1[1]

print(df)

print("-" * 10)

## 重新设置各个列的位置:
df = df.reindex(columns=['商品名称+味道','商品名称','味道','产地'])
print(df)

## 把结果分别导出到指定的xlsx文件:
df.to_excel('C:\\Users\\jacky\\Desktop\\文件_1.xlsx',sheet_name='Sheet页_1',index=False,header=True) #不保留索引(行标题),但保留列标题

df.to_excel('C:/Users/jacky/Desktop/文件_mybook_2.xlsx',sheet_name='Sheet页_2',index=False,header=False) #不保留索引(行标题)、列标题

df.to_excel('d:/share/mybook_3.xlsx',sheet_name='Sheet页_3',index=True,header=True) #保留索引(行标题)、列标题

脚本运行的结果:(假如目标文件存在则覆盖,不存在则自动创建)
C:\Users\jacky\Desktop>python xx.py
         商品名称+味道                产地
商品编号
SP001     蛋糕:草莓味  广东省广州市荔湾区
SP002     蛋糕:青瓜味  广东省广州市南沙区
SP003     面包:番茄味  广东省佛山市南海区
----------
----------
         商品名称+味道                产地 商品名称    味道
商品编号
SP001     蛋糕:草莓味  广东省广州市荔湾区     蛋糕  草莓味
SP002     蛋糕:青瓜味  广东省广州市南沙区     蛋糕  青瓜味
SP003     面包:番茄味  广东省佛山市南海区     面包  番茄味
----------
         商品名称+味道 商品名称    味道                产地
商品编号
SP001     蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
SP002     蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
SP003     面包:番茄味     面包  番茄味  广东省佛山市南海区

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df = pd.read_excel('文件_1.xlsx') #读取与脚本在同一目录里的Excel文件(.xlsx)

print(df) #显示所有记录

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
  商品名称+味道 商品名称    味道                产地
0  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
2  面包:番茄味     面包  番茄味  广东省佛山市南海区

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df = pd.read_excel('文件_1.xlsx',sheet_name=0) # sheet_name=0 即第一个工作表,省略时就是使用第一个工作表

print(df.head(2)) #显示前2条记录

print("-" * 10)
print("-" * 10)

## 显示前5条记录:
Result_2 = df.head(5)
print(Result_2)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
  商品名称+味道 商品名称    味道                产地
0  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
----------
----------
  商品名称+味道 商品名称    味道                产地
0  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
2  面包:番茄味     面包  番茄味  广东省佛山市南海区

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df = pd.read_excel('文件_1.xlsx',sheet_name='Sheet页_1') # sheet_name='' 指定工作表名称

print(df)

print("-" * 10)
print("-" * 10)

print(df[['商品名称','味道','产地']]) #只显示指定的列数据

print("-" * 10)

print(df[['商品名称','味道','产地']].head(2)) #只显示指定的列数据的前2条记录

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
  商品名称+味道 商品名称    味道                产地
0  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
2  面包:番茄味     面包  番茄味  广东省佛山市南海区
----------
----------
  商品名称    味道                产地
0     蛋糕  草莓味  广东省广州市荔湾区
1     蛋糕  青瓜味  广东省广州市南沙区
2     面包  番茄味  广东省佛山市南海区
----------
  商品名称    味道                产地
0     蛋糕  草莓味  广东省广州市荔湾区
1     蛋糕  青瓜味  广东省广州市南沙区

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df = pd.read_excel('C:/Users/jacky/Desktop/文件_1.xlsx',sheet_name='Sheet页_1')

print(df)

print("-" * 10)
print("-" * 10)

print(df.iloc[:,[1,2,3]]) #输出第2列、第3列、第4列的数据

print("-" * 10)

print(df.iloc[:,[1,2,3]].head(2)) #只显示第2列、第3列、第4列的前2条记录

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
  商品名称+味道 商品名称    味道                产地
0  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
2  面包:番茄味     面包  番茄味  广东省佛山市南海区
----------
----------
  商品名称    味道                产地
0     蛋糕  草莓味  广东省广州市荔湾区
1     蛋糕  青瓜味  广东省广州市南沙区
2     面包  番茄味  广东省佛山市南海区
----------
  商品名称    味道                产地
0     蛋糕  草莓味  广东省广州市荔湾区
1     蛋糕  青瓜味  广东省广州市南沙区

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df = pd.read_excel('C:\\Users\\jacky\\Desktop\\文件_1.xlsx',sheet_name='Sheet页_1')

print(df)

print("-" * 10)
print("-" * 10)

## 插入一列,列标题为“商品编号”,位置为第2列:
Columns_1=['SP001','SP002','SP003']
df.insert(1,'商品编号',Columns_1)
print(df)

print("-" * 10)

## 重新设置各个列的位置:
df = df[['商品编号','商品名称+味道','商品名称','味道','产地']]
print(df)

print("-" * 10)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
  商品名称+味道 商品名称    味道                产地
0  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
2  面包:番茄味     面包  番茄味  广东省佛山市南海区
----------
----------
  商品名称+味道 商品编号 商品名称    味道                产地
0  蛋糕:草莓味    SP001     蛋糕  草莓味  广东省广州市荔湾区
1  蛋糕:青瓜味    SP002     蛋糕  青瓜味  广东省广州市南沙区
2  面包:番茄味    SP003     面包  番茄味  广东省佛山市南海区
----------
  商品编号 商品名称+味道 商品名称    味道                产地
0    SP001  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1    SP002  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
2    SP003  面包:番茄味     面包  番茄味  广东省佛山市南海区
----------
商品编号 商品名称+味道 商品名称    味道                产地
   SP001  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
   SP002  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
   SP003  面包:番茄味     面包  番茄味  广东省佛山市南海区

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df = pd.read_excel('C:/Users/jacky/Desktop/文件_mybook_2.xlsx',sheet_name='Sheet页_2',header=None) #这里使用了“header=0”
print(df)

print("-" * 10)
print("-" * 10)

df.columns = ['商品名称+味道','商品名称','味道','产地'] #自定义列标题
print(df)

print("-" * 10)

## 插入一列,列标题为“商品编号”,位置为第1列:
Columns_1=['SP001','SP002','SP003']
df.insert(0,'商品编号',Columns_1)
print(df)

print("-" * 10)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
              0     1       2                   3
0  蛋糕:草莓味  蛋糕  草莓味  广东省广州市荔湾区
1  蛋糕:青瓜味  蛋糕  青瓜味  广东省广州市南沙区
2  面包:番茄味  面包  番茄味  广东省佛山市南海区
----------
----------
  商品名称+味道 商品名称    味道                产地
0  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
2  面包:番茄味     面包  番茄味  广东省佛山市南海区
----------
  商品编号 商品名称+味道 商品名称    味道                产地
0    SP001  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1    SP002  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
2    SP003  面包:番茄味     面包  番茄味  广东省佛山市南海区
----------
商品编号 商品名称+味道 商品名称    味道                产地
   SP001  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
   SP002  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
   SP003  面包:番茄味     面包  番茄味  广东省佛山市南海区

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df = pd.read_excel('d:/share/mybook_3.xlsx',sheet_name='Sheet页_3')

print(df)

print("-" * 10)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
  商品编号 商品名称+味道 商品名称    味道                产地
0    SP001  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1    SP002  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
2    SP003  面包:番茄味     面包  番茄味  广东省佛山市南海区
----------
商品编号 商品名称+味道 商品名称    味道                产地
   SP001  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
   SP002  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
   SP003  面包:番茄味     面包  番茄味  广东省佛山市南海区

C:\Users\jacky\Desktop>



######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df = pd.read_excel('d:\\share\\mybook_3.xlsx',sheet_name=0)

print(df)

print("-" * 10)

## 一次性删除列标题为“产地”、“商品名称+味道”的数据:
df.drop(['产地','商品名称+味道'],axis=1,inplace=True)
print(df)

print("-" * 10)

## 不输出索引:
df = df.to_string(index=False)
print(df)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
  商品编号 商品名称+味道 商品名称    味道                产地
0    SP001  蛋糕:草莓味     蛋糕  草莓味  广东省广州市荔湾区
1    SP002  蛋糕:青瓜味     蛋糕  青瓜味  广东省广州市南沙区
2    SP003  面包:番茄味     面包  番茄味  广东省佛山市南海区
----------
  商品编号 商品名称    味道
0    SP001     蛋糕  草莓味
1    SP002     蛋糕  青瓜味
2    SP003     面包  番茄味
----------
商品编号 商品名称    味道
   SP001     蛋糕  草莓味
   SP002     蛋糕  青瓜味
   SP003     面包  番茄味

C:\Users\jacky\Desktop>





######
######

#coding=utf-8

import pandas as pd

def func1(): #自定义导出的函数

        pd.set_option('display.unicode.east_asian_width',True)

        Key_index = ['李大杰','Jacky','zhuohua']

        Key_columns = ['商品名称','收货地址']

        Key_data = [['蛋糕,草莓味','广东省广州市荔湾区A街道100号'],['蛋糕,青瓜味','广西省南宁市江南区B街道200号'],
        ['面包,番茄味','广东省佛山市南海区C街道300号']]

        df = pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据
        print(df)

        print("-" * 10)
        print("-" * 10)

        ## 删除列标题为“商品名称”的数据:
        df.drop(['商品名称'],axis=1,inplace=True)
        print(df)

        print("-" * 10)

        ## 使用split函数分割"收货地址":
        df['街道牌号'] = df['收货地址'].str.split('区',expand=True)[1] #这里的分隔符为“区”

        Result_1 = df['收货地址'].str.split('区',expand=True)[0] #这里的分隔符为“区”
        Result_2 = Result_1.str.split('市',expand=True)[1] #这里的分隔符为“市”
        df['区'] = Result_2 + '区'

        Result_3 = Result_1.str.split('市',expand=True)[0] #这里的分隔符为“市”
        Result_4 = Result_3.str.split('省',expand=True)[1] #这里的分隔符为“省”
        df['城市'] = Result_4 + '市'

        Result_5 = Result_3.str.split('省',expand=True)[0] #这里的分隔符为“省”
        df['省份'] = Result_5 + '省'

        print(df)

        print("-" * 10)

        ## 重新设置各个列的位置:
        df_2 = df.reindex(columns=['省份','城市','区','街道牌号'])
        print(df_2)
       
        ## 把结果导出到指定的xlsx文件:
        df_2.to_excel('d:/share/mybook_3.xlsx',sheet_name='Sheet_3',index=True,header=True) #保留索引(行标题)、列标题

        print("-" * 10)
        print("-" * 10)
        print("-" * 10)
       
        func2() #执行func2()
       
def func2(): #自定义导入的函数

        pd.set_option('display.unicode.east_asian_width',True)

        df = pd.read_excel('d:\\share\\mybook_3.xlsx',sheet_name='Sheet_3') #导入指定的xlsx文件

        print(df)
        print(type(df))

        print("-" * 10)

        ## 修改一个列标题:
        df.rename(columns={'Unnamed: 0':'收货人'},inplace=True)
        print(df)

        print("-" * 10)

        ## 不输出索引:
        df = df.to_string(index=False)
        print(df)

if __name__ == '__main__':

        func1() #执行func1()

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
             商品名称                      收货地址
李大杰   蛋糕,草莓味  广东省广州市荔湾区A街道100号
Jacky    蛋糕,青瓜味  广西省南宁市江南区B街道200号
zhuohua  面包,番茄味  广东省佛山市南海区C街道300号
----------
----------
                             收货地址
李大杰   广东省广州市荔湾区A街道100号
Jacky    广西省南宁市江南区B街道200号
zhuohua  广东省佛山市南海区C街道300号
----------
                             收货地址    街道牌号      区    城市    省份
李大杰   广东省广州市荔湾区A街道100号  A街道100号  荔湾区  广州市  广东省
Jacky    广西省南宁市江南区B街道200号  B街道200号  江南区  南宁市  广西省
zhuohua  广东省佛山市南海区C街道300号  C街道300号  南海区  佛山市  广东省
----------
           省份    城市      区    街道牌号
李大杰   广东省  广州市  荔湾区  A街道100号
Jacky    广西省  南宁市  江南区  B街道200号
zhuohua  广东省  佛山市  南海区  C街道300号
----------
----------
----------
  Unnamed: 0    省份    城市      区    街道牌号
0     李大杰  广东省  广州市  荔湾区  A街道100号
1      Jacky  广西省  南宁市  江南区  B街道200号
2    zhuohua  广东省  佛山市  南海区  C街道300号
<class 'pandas.core.frame.DataFrame'>
----------
    收货人    省份    城市      区    街道牌号
0   李大杰  广东省  广州市  荔湾区  A街道100号
1    Jacky  广西省  南宁市  江南区  B街道200号
2  zhuohua  广东省  佛山市  南海区  C街道300号
----------
  收货人    省份    城市      区    街道牌号
  李大杰  广东省  广州市  荔湾区  A街道100号
   Jacky  广西省  南宁市  江南区  B街道200号
zhuohua  广东省  佛山市  南海区  C街道300号

C:\Users\jacky\Desktop>





######
######

#coding=utf-8

import pandas as pd

def func1(): #自定义导出的函数

        pd.set_option('display.unicode.east_asian_width',True)

        Key_data=[[110,105,99,'三年一班','三年级'],[66,77,99,'三年二班','三年级'],
        [108,88,115,'三年一班','三年级'],[115,28,65,'三年二班','三年级'],
        [106,120,129.5,'四年一班','四年级']]

        Key_index=['李大杰','小红','Jacky','Lily','zhuohua wu']

        Key_columns=['语文成绩','数学成绩','英语成绩','班级','年级']

        df=pd.DataFrame(data=Key_data,index=Key_index,columns=Key_columns) #使用二维数组创建DataFrame数据
        print(df)

        print("-" * 10)
        print("-" * 10)
       
        ## 一次性删除列标题为“英语成绩”、“数学成绩”的数据:
        df.drop(['英语成绩','数学成绩'],axis=1,inplace=True)

        print(df)
       
        print("-" * 10)

        print("分别输出各班级的“语文成绩”的平均成绩:")

        ## 先按“年级”进行分组,再按“班级”进行分组后,求平均值,并且重新设置索引:(按多列分组统计)
        df = df.groupby(['年级','班级']).mean().reset_index()

        print(df)

        print("-" * 3)

        df.rename(columns={'语文成绩':'语文成绩的平均值'},inplace=True) #修改一个列标题
        print(df)

        print("-" * 3)

        df.sort_values(by='语文成绩的平均值',ascending=False, inplace=True) #按“语文成绩的平均值”进行排序(降序)

        print(df)
       
        print("-" * 3)
       
        ## “顺序排名”那一列的数据自己进行升序(method="max",ascending=False)
        df['顺序排名']=df['语文成绩的平均值'].rank(method="max",ascending=False)
        #print(df)
       
        #print("-" * 3)

        df['顺序排名'] = df['顺序排名'].astype(int) #列标题为“顺序排名”的数据不保留小数
        #print(df)
       
        #print("-" * 3)

        df = df.reindex(columns=['顺序排名','语文成绩的平均值','班级','年级']) #重新设置各个列的位置
        print(df)
       
        ## 把结果导出到指定的xlsx文件:
        df.to_excel('d:/mybook_3.xlsx',sheet_name='工作表3',index=False,header=True) #不保留索引(行标题),但保留列标题

def func2(): #自定义导入的函数

        pd.set_option('display.unicode.east_asian_width',True)

        df = pd.read_excel('d:/mybook_3.xlsx',sheet_name=0) #导入指定的xlsx文件

        print(df)
        print(type(df))

        print("-" * 10)

        ## 不输出索引:
        df = df.to_string(index=False)
        print(df)

if __name__ == '__main__':

        func1() #执行func1()
       
        print("-" * 10)
        print("-" * 10)
        print("-" * 10)
       
        func2() #执行func2()

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
            语文成绩  数学成绩  英语成绩      班级    年级
李大杰           110       105      99.0  三年一班  三年级
小红              66        77      99.0  三年二班  三年级
Jacky            108        88     115.0  三年一班  三年级
Lily             115        28      65.0  三年二班  三年级
zhuohua wu       106       120     129.5  四年一班  四年级
----------
----------
            语文成绩      班级    年级
李大杰           110  三年一班  三年级
小红              66  三年二班  三年级
Jacky            108  三年一班  三年级
Lily             115  三年二班  三年级
zhuohua wu       106  四年一班  四年级
----------
分别输出各班级的“语文成绩”的平均成绩:
     年级      班级  语文成绩
0  三年级  三年一班     109.0
1  三年级  三年二班      90.5
2  四年级  四年一班     106.0
---
     年级      班级  语文成绩的平均值
0  三年级  三年一班             109.0
1  三年级  三年二班              90.5
2  四年级  四年一班             106.0
---
     年级      班级  语文成绩的平均值
0  三年级  三年一班             109.0
2  四年级  四年一班             106.0
1  三年级  三年二班              90.5
---
   顺序排名  语文成绩的平均值      班级    年级
0         1             109.0  三年一班  三年级
2         2             106.0  四年一班  四年级
1         3              90.5  三年二班  三年级
----------
----------
----------
   顺序排名  语文成绩的平均值      班级    年级
0         1             109.0  三年一班  三年级
1         2             106.0  四年一班  四年级
2         3              90.5  三年二班  三年级
<class 'pandas.core.frame.DataFrame'>
----------
顺序排名  语文成绩的平均值      班级    年级
        1             109.0  三年一班  三年级
        2             106.0  四年一班  四年级
        3              90.5  三年二班  三年级

C:\Users\jacky\Desktop>





######
######

#coding=utf-8

import pandas as pd

def func1(): #自定义导出的函数

        pd.set_option('display.unicode.east_asian_width',True)

        Key_data=[[110,105,99,'三年一班','三年级'],[66,77,99,'三年二班','三年级'],
        [108,88,115,'三年一班','三年级'],[115,28,65,'三年二班','三年级'],
        [106,120,129.5,'四年一班','四年级']]

        Key_index=['李大杰','小红','Jacky','Lily','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.groupby(['年级','班级'])['语文成绩'].mean().reset_index()

        print(df)

        print("-" * 3)

        df.rename(columns={'语文成绩':'语文成绩的平均值'},inplace=True) #修改一个列标题
        print(df)

        print("-" * 3)

        df.sort_values(by='语文成绩的平均值',ascending=False, inplace=True) #按“语文成绩的平均值”进行排序(降序)

        print(df)
       
        print("-" * 3)
       
        ## “顺序排名”那一列的数据自己进行升序(method="first",ascending=False)
        df['顺序排名']=df['语文成绩的平均值'].rank(method="first",ascending=False)
        #print(df)
       
        #print("-" * 3)

        df['顺序排名'] = df['顺序排名'].astype(int) #列标题为“顺序排名”的数据不保留小数
        #print(df)
       
        #print("-" * 3)

        df = df.reindex(columns=['顺序排名','语文成绩的平均值','班级','年级']) #重新设置各个列的位置
        print(df)
       
        ## 把结果导出到指定的xlsx文件:
        df.to_excel('d:\\share\\mybook_3.xlsx',sheet_name='工作表-3',index=False,header=True) #不保留索引(行标题),但保留列标题

def func2(): #自定义导入的函数

        pd.set_option('display.unicode.east_asian_width',True)

        df = pd.read_excel('d:/share/mybook_3.xlsx',sheet_name='工作表-3') #导入指定的xlsx文件

        print(df)
        print(type(df))

        print("-" * 10)

        ## 不输出索引:
        df = df.to_string(index=False)
        print(df)

if __name__ == '__main__':

        func1() #执行func1()
       
        print("-" * 10)
        print("-" * 10)
        print("-" * 10)
       
        func2() #执行func2()

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
            语文成绩  数学成绩  英语成绩      班级    年级
李大杰           110       105      99.0  三年一班  三年级
小红              66        77      99.0  三年二班  三年级
Jacky            108        88     115.0  三年一班  三年级
Lily             115        28      65.0  三年二班  三年级
zhuohua wu       106       120     129.5  四年一班  四年级
----------
----------
分别输出各班级的“语文成绩”的平均成绩:
     年级      班级  语文成绩
0  三年级  三年一班     109.0
1  三年级  三年二班      90.5
2  四年级  四年一班     106.0
---
     年级      班级  语文成绩的平均值
0  三年级  三年一班             109.0
1  三年级  三年二班              90.5
2  四年级  四年一班             106.0
---
     年级      班级  语文成绩的平均值
0  三年级  三年一班             109.0
2  四年级  四年一班             106.0
1  三年级  三年二班              90.5
---
   顺序排名  语文成绩的平均值      班级    年级
0         1             109.0  三年一班  三年级
2         2             106.0  四年一班  四年级
1         3              90.5  三年二班  三年级
----------
----------
----------
   顺序排名  语文成绩的平均值      班级    年级
0         1             109.0  三年一班  三年级
1         2             106.0  四年一班  四年级
2         3              90.5  三年二班  三年级
<class 'pandas.core.frame.DataFrame'>
----------
顺序排名  语文成绩的平均值      班级    年级
        1             109.0  三年一班  三年级
        2             106.0  四年一班  四年级
        3              90.5  三年二班  三年级

C:\Users\jacky\Desktop>










######(写入)
######

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

#使用字典创建DataFrame数据
df_1 = pd.DataFrame({
'A列':[1,2,3,4,5],
'B列':[[1,2],[3,'zhuohua'],[5,6],[7,8],['李大杰',10]]
})

print(df_1)

print("-" * 10)
print("-" * 10)

df_2 = df_1[['B列_1','B列_2']] = df_1['B列'].apply(pd.Series) #使用apply函数对df_1进行分割

print(df_1)

df_1.drop(['B列_1','B列_2'],axis=1,inplace=True) #一次性删除df_1的列标题为“B列_1”、“B列_2”的数据

print("-" * 3)

print(df_1)

print("-" * 10)

print(df_2)

print("-" * 3)

## 修改df_2的多个列标题:
df_2.rename(columns={0:'B列_1',1:'B列_2'},inplace=True)
print(df_2)

## 把结果分别导出到同一个Excel文件(.xlsx)的不同工作表里:

Work_1 = pd.ExcelWriter('学生信息表-1.xlsx')

df_1.to_excel(Work_1,sheet_name='Sheet页_1',index=False,header=True) #不保留索引(行标题),但保留列标题

df_2.to_excel(Work_1,sheet_name='Sheet页-2',index=False,header=True) #不保留索引(行标题),但保留列标题

Work_1.save()

脚本运行的结果:(假如目标Excel文件存在则覆盖,不存在则自动创建)
C:\Users\jacky\Desktop>python xx.py
   A列           B列
0    1        [1, 2]
1    2  [3, zhuohua]
2    3        [5, 6]
3    4        [7, 8]
4    5  [李大杰, 10]
----------
----------
   A列           B列   B列_1    B列_2
0    1        [1, 2]       1        2
1    2  [3, zhuohua]       3  zhuohua
2    3        [5, 6]       5        6
3    4        [7, 8]       7        8
4    5  [李大杰, 10]  李大杰       10
---
   A列           B列
0    1        [1, 2]
1    2  [3, zhuohua]
2    3        [5, 6]
3    4        [7, 8]
4    5  [李大杰, 10]
----------
        0        1
0       1        2
1       3  zhuohua
2       5        6
3       7        8
4  李大杰       10
---
    B列_1    B列_2
0       1        2
1       3  zhuohua
2       5        6
3       7        8
4  李大杰       10

C:\Users\jacky\Desktop>



######(读取)

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df_1 = pd.read_excel('学生信息表-1.xlsx',sheet_name=0) # sheet_name=0 即第一个工作表

print(df_1)

print("-" * 10)
print("-" * 10)

df_2 = pd.read_excel('学生信息表-1.xlsx',sheet_name=1) # sheet_name=1 即第二个工作表

print(df_2)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
   A列             B列
0    1          [1, 2]
1    2  [3, 'zhuohua']
2    3          [5, 6]
3    4          [7, 8]
4    5  ['李大杰', 10]
----------
----------
    B列_1    B列_2
0       1        2
1       3  zhuohua
2       5        6
3       7        8
4  李大杰       10

C:\Users\jacky\Desktop>



######(读取)

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df_1 = pd.read_excel('学生信息表-1.xlsx',sheet_name=1) # sheet_name=1 即第二个工作表

print(df_1)

print("-" * 10)
print("-" * 10)

df_2 = pd.read_excel('学生信息表-1.xlsx',sheet_name='Sheet页_1') # sheet_name='' 指定工作表名称

print(df_2)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
    B列_1    B列_2
0       1        2
1       3  zhuohua
2       5        6
3       7        8
4  李大杰       10
----------
----------
   A列             B列
0    1          [1, 2]
1    2  [3, 'zhuohua']
2    3          [5, 6]
3    4          [7, 8]
4    5  ['李大杰', 10]

C:\Users\jacky\Desktop>



######(追加)

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df_3 = pd.DataFrame({'学生编号':['mr001','mr002','mr003'],'学生姓名':['zhuohua','Jacky','李大杰'],
'语文成绩':[34.5,39.7,38]})
print(df_3)

with pd.ExcelWriter("学生信息表-1.xlsx", mode='a', engine='openpyxl') as writer:
        df_3.to_excel(writer, sheet_name="我的工作表3", index=False) #往已有的Excel文件(.xlsx)中追加一个工作表

脚本运行的结果:(这种方法支持.xlsx文件,但不支持.xls文件;假如Excel文件不存在,则报错)
C:\Users\jacky\Desktop>python xx.py
  学生编号 学生姓名  语文成绩
0    mr001  zhuohua      34.5
1    mr002    Jacky      39.7
2    mr003   李大杰      38.0

C:\Users\jacky\Desktop>



######(读取)

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df1 = pd.read_excel('学生信息表-1.xlsx',sheet_name=0) # sheet_name=0 即第一个工作表
print(df1)

print("-" * 10)

df2 = pd.read_excel('学生信息表-1.xlsx',sheet_name=1) # sheet_name=1 即第二个工作表
print(df2)

print("-" * 10)

df3 = pd.read_excel('学生信息表-1.xlsx',sheet_name=2) # sheet_name=2 即第三个工作表
print(df3)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
   A列             B列
0    1          [1, 2]
1    2  [3, 'zhuohua']
2    3          [5, 6]
3    4          [7, 8]
4    5  ['李大杰', 10]
----------
    B列_1    B列_2
0       1        2
1       3  zhuohua
2       5        6
3       7        8
4  李大杰       10
----------
  学生编号 学生姓名  语文成绩
0    mr001  zhuohua      34.5
1    mr002    Jacky      39.7
2    mr003   李大杰      38.0

C:\Users\jacky\Desktop>



######(读取)

#coding=utf-8

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df1 = pd.read_excel('学生信息表-1.xlsx',sheet_name='Sheet页_1') # sheet_name='' 指定工作表名称
print(df1)

print("-" * 10)

df3 = pd.read_excel('学生信息表-1.xlsx',sheet_name='我的工作表3')
print(df3)

print("-" * 10)

df2 = pd.read_excel('学生信息表-1.xlsx',sheet_name='Sheet页-2')
print(df2)

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
   A列             B列
0    1          [1, 2]
1    2  [3, 'zhuohua']
2    3          [5, 6]
3    4          [7, 8]
4    5  ['李大杰', 10]
----------
  学生编号 学生姓名  语文成绩
0    mr001  zhuohua      34.5
1    mr002    Jacky      39.7
2    mr003   李大杰      38.0
----------
    B列_1    B列_2
0       1        2
1       3  zhuohua
2       5        6
3       7        8
4  李大杰       10

C:\Users\jacky\Desktop>





######
######

#coding=utf-8

import pandas as pd

def func1(): #自定义导出的函数

        pd.set_option('display.unicode.east_asian_width',True)

        #使用字典创建DataFrame数据
        df_1 = pd.DataFrame({
        'A列':[1,2,3,4,5],
        'B列':[(1,2),(3,'zhuohua'),(5,6),(7,8),('李大杰',10)]
        })

        print(df_1)

        print("-" * 10)
        print("-" * 10)

        df_2 = df_1[['B列_1','B列_2']] = df_1['B列'].apply(pd.Series) #使用apply函数对df_1进行分割

        print(df_1)

        df_1.drop(['B列_2','B列_1'],axis=1,inplace=True) #一次性删除df_1的列标题为“B列_2”、“B列_1”的数据

        print("-" * 3)

        print(df_1)

        print("-" * 10)

        print(df_2)

        print("-" * 3)

        ## 修改df_2的多个列标题:
        df_2.rename(columns={0:'B列_1',1:'B列_2'},inplace=True)
        print(df_2)

        ## 把结果分别导出到同一个Excel文件(.xlsx)的不同工作表里:

        Work_1 = pd.ExcelWriter('学生信息表-1.xlsx')

        df_1.to_excel(Work_1,sheet_name='Sheet页_1',index=False,header=True) #不保留索引(行标题),但保留列标题

        df_2.to_excel(Work_1,sheet_name='Sheet页-2',index=False,header=True) #不保留索引(行标题),但保留列标题

        Work_1.save()

def func2(): #自定义导入的函数

        pd.set_option('display.unicode.east_asian_width',True)

        df_1 = pd.read_excel('学生信息表-1.xlsx',sheet_name='Sheet页_1') #导入指定的xlsx文件的工作表

        print(df_1)
       
        print("-" * 10)
       
        df_2 = pd.read_excel('学生信息表-1.xlsx',sheet_name=1) #导入指定的xlsx文件的工作表

        print(df_2)
       
if __name__ == '__main__':

        func1() #执行func1()
       
        print("-" * 10)
        print("-" * 10)
        print("-" * 10)
       
        func2() #执行func2()

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
   A列           B列
0    1        (1, 2)
1    2  (3, zhuohua)
2    3        (5, 6)
3    4        (7, 8)
4    5  (李大杰, 10)
----------
----------
   A列           B列   B列_1    B列_2
0    1        (1, 2)       1        2
1    2  (3, zhuohua)       3  zhuohua
2    3        (5, 6)       5        6
3    4        (7, 8)       7        8
4    5  (李大杰, 10)  李大杰       10
---
   A列           B列
0    1        (1, 2)
1    2  (3, zhuohua)
2    3        (5, 6)
3    4        (7, 8)
4    5  (李大杰, 10)
----------
        0        1
0       1        2
1       3  zhuohua
2       5        6
3       7        8
4  李大杰       10
---
    B列_1    B列_2
0       1        2
1       3  zhuohua
2       5        6
3       7        8
4  李大杰       10
----------
----------
----------
   A列             B列
0    1          (1, 2)
1    2  (3, 'zhuohua')
2    3          (5, 6)
3    4          (7, 8)
4    5  ('李大杰', 10)
----------
    B列_1    B列_2
0       1        2
1       3  zhuohua
2       5        6
3       7        8
4  李大杰       10

C:\Users\jacky\Desktop>





相关文章:
Pandas的基础
Pandas的数据合并
Pandas的进阶(三)
Pandas+Excel+绘图库Matplotlib

split()函数

返回列表