Pandas读写csv文件,根据其中一列分组(可去重),按照条件merge合并两个表,append添加行,根据列值选择行

1、简单读写操作

读操作
import pandas as pd
file_name = u'文件名.xlsx'
excel_file = os.getcwd() +/+ file_name
data = pd.read_excel(excel_file, sheet_name=0, header=0)

其中sheet_name表示excel文档中的sheet表,要取起一个sheet,sheet_name=0,以此类推。
header表示列表名是在哪一行出现,如果是第一行,则header=0,以此类推。

写操作
data.to_excel(os.getcwd() +/文件名.xlsx’, encoding='utf_8_sig', index= False) #data的属性是dataframe

index = Flase代表写进excel的时候不自动加进的index这一列。

2、根据一列分组

比如应用中想要按照一列进行分组,下面的例子是按照人名分组,人名相同的为一组,然后组内按照课程分数进行排序。

# 根据"人名"分组
listType = data[u'人名'].unique()
data_remo = pd.DataFrame(columns=data.columns)  # 新建一个空dataframe,用于存储去重后的dataframe

for i in listType:
	data_group = data[data[u'人名'].isin([i])]
    data_group = data_group.sort_values(by=[u"课程分数"], ascending=True)
    # data_group = data_group.iloc[[0]] #如果想取值,去重,取这个人最高分数,则ascending=False,然后加上这一句
    data_remo = data_remo.append(data_group, ignore_index=True)

下图是原始的dataframe和分组后的dataframe
在这里插入图片描述

3、按照条件合并两个表

merge,只记录这个我用的多的。
和数据库相似,比如左链接
data1为左表,data2为右表
在这里插入图片描述

data_final = data1.merge(data2, how = 'left', left_on = 'id', right_on = 'IP')
print data_final

结果:
在这里插入图片描述

4、添加行

以data1和data2为例
在这里插入图片描述

data_final = data1.append(data2, ignore_index=True)
print data_final

结果:
在这里插入图片描述

5、根据列中特定条件选择行

在这里插入图片描述
取id为5和6的行

data = data_final[data_final['id'].isin([5,6])]

结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值