Python-pandas练习1

1、将meal_order_detail.csv、meal_order_info.csv、userInfo.csv文件保存在自己建立的文件夹下
2、用读取CSV命令打开这三个文件,并将生成的DateFrame存储到df1、df2、df3中
3、(1)显示df1前十条和后十条记录,(2)分别用loc、iloc函数显示df1中10条到30条记录,只显示1、5列
4、(1)分别用loc、iloc显示df2中“emp_id”为988的记录,并只显示info_id、emp_id、name三列
5、(1)显示df3中3到30条记录,只显示1、2、3、4、6列 (2)将ORGANIZE_NAME==‘统计班’的更改为“统计班18班”
import pandas as pd
df1=pd.read_csv(r'meal_order_detail.csv',header=0,encoding='utf-8')
df2=pd.read_csv(r'meal_order_info.csv',header=0,encoding='gbk')
df3=pd.read_csv(r'userInfo.csv',header=0,encoding='gbk')
# 显示df1前十条和后十条记录
data1=df1.loc[:9]
print(data1)
data2=df1.loc[::-1][:10]
print(data2)
# 分别用loc、iloc函数显示df1中10条到30条记录,只显示1、5列
b1=df1.loc[10:30,['detail_id','parent_class_name']] # loc:[10,30]
print(b1)
b2=df1.iloc[10:31,[0,4]] # iloc:[10,31)
print(b2)
# 分别用loc、iloc显示df2中“emp_id”为988的记录,并只显示info_id、emp_id、name三列
c1=df2.loc[df2['emp_id'] == 988, ['info_id', 'emp_id', 'name']]
print(c1)
c2 = df2.iloc[df2.index[df2['emp_id'] == 988], [0, 1, -1]]
print('1',c2)
# 显示df3中3到30条记录,只显示1、2、3、4、6列
x1=df3.iloc[3:31,[0,1,2,3,5]]
print(x1)
# 将ORGANIZE_NAME==‘统计班’的更改为“统计班18班”
print('---------------------------------')
print(df3)
print(df3.ORGANIZE_NAME)
df3.ORGANIZE_NAME = df3['ORGANIZE_NAME'].replace('统计班', '统计班18班')
print('--------------------------------')
print(df3)
print(df3.ORGANIZE_NAME)
下载文件并读取文件到df1中:
1、在df1中增加一列‘总金额’,该列是由"counts"、"amounts"乘积计算得到
2、对df1的‘总金额’进行以下统计计算:
import pandas as pd
df1=pd.read_csv(r'meal_order_detail.csv',header=0,encoding='utf-8')
print(df1)
print('-----------------------------------------------')
df1['总金额']=df1['counts']*df1['amounts']
print(df1)
print('-----------------------------------------------')
min=df1.总金额.min()
print('最小值:',min)
mean=df1.总金额.mean()
print('平均值:',mean)
median=df1.总金额.median()
print('中位数:',median)
var=df1.总金额.var()
print('方差:',var)
quantile=df1.总金额.quantile()
print('四分位数:',quantile)
describe=df1.总金额.describe()
print('描述统计:',describe)
max=df1.总金额.max()
print('最大值:',max)
count=df1.总金额.count()
print('非空值数目:',count)
std=df1.总金额.std()
print('标准差:',std)
mode=df1.总金额.mode()
print('众数:',mode)
1、打开“rs.csv”文件,读取到DataFrame框架中
2、操作:添加年纪列,值自定
3、显示(行:2,列:姓名,部门);
4、显示(行2,3,5,列:1,2,4);
5、添加“籍贯”列,自己输入相应的籍贯值
6、彻底删除分公司列,并将修改后的内存中的框架结构写入文件,文件名自己确认
7、按“部门”分组求出“小时报酬”、“工作时间”最大值、最小值
8、按“分公司”分组,求出“薪水”平均值
import pandas as pd
import random
# 1、打开“rs.csv”文件,读取到DataFrame框架中
df=pd.read_csv(r'rs.csv',header=0,encoding='gbk')
print(df)
print('-------------------------------------------------------')
# 2、操作:添加年纪列,值自定
df['年龄']=[random.randint(20,50) for _ in range(len(df))]
print(df)
print('-------------------------------------------------------')
# 3、显示(行:2,列:姓名,部门);
x1=df.loc[2,['姓名','部门']]
print(x1)
print('-------------------------------------------------------')
# (行0,1, 列:姓名,分公司);
x2=df.loc[0:1,['姓名','分公司']]
print(x2)
print('-------------------------------------------------------')
# (行:1至5,列:小时报酬,薪水)
x3=df.loc[1:5,['小时报酬','薪水']]
print(x3)
print('-------------------------------------------------------')
# 4、显示(行2,3,5,列:1,2,4);
x4=df.iloc[[2,3,5],[0,1,3]]
print(x4)
print('-------------------------------------------------------')
# (行:2至5,列:1:4)
x5=df.iloc[2:6,0:4]
print(x5)
print('-------------------------------------------------------')
# 5、添加“籍贯”列,自己输入相应的籍贯值
df['籍贯']='安徽省合肥市'
print(df)
print('-------------------------------------------------------')
# 6、彻底删除分公司列,并将修改后的内存中的框架结构写入文件,文件名自己确认
df.drop('分公司',axis=1,inplace=True)
df.to_csv(r'rs_new.csv',index = False,encoding='gbk')
# 7、按“部门”分组求出“小时报酬”、“工作时间”最大值、最小值
a1=df.groupby(['部门']).小时报酬.max()
print(a1)
print('-------------------------------------------------------')
a2=df.groupby(['部门']).小时报酬.min()
print(a2)
print('-------------------------------------------------------')
b1=df.groupby(['部门']).工作时间.max()
print(b1)
print('-------------------------------------------------------')
b2=df.groupby(['部门']).工作时间.min()
print(b2)
print('-------------------------------------------------------')
# 8、按“分公司”分组,求出“薪水”平均值
df1=pd.read_csv(r'rs.csv',header=0,encoding='gbk')
c=df1.groupby(['分公司']).薪水.mean()
print(c)

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值