pandas处理csv
- 读取文件
- 筛选
- 查找值所在行的索引
- 根据索引删除行
- 去重
- 拆分
- 写入csv
- 总结:
前言:
本人没学过pandas,不过最近总处理一些csv文件,从网上查用法,总是忘记,所以今天记录一下这些常用的用法,以后再补pandas,写的很简陋,还请大家海涵,有不足的还请大佬指教
读取文件
import pandas as pd
data = pd.read_csv(文件, encoding='编码')
- 1
- 2
筛选
单列
value = data['列名']
- 1
多列
value = data[['列名1', '列名2']]
- 1
注:
直接read读取的值不能for 遍历,筛选后单列可以for遍历,多列不行
查找值所在行的索引
index = data[data['列名'] == 要查找的值].index.tolist()[0]
- 1
根据索引删除行
data.drop(index, inplace=True)
#参数:inplace=True
#是在原文件进行更改,Flase表示不更改,需要赋值
#删除单位列的,空行数据
data.dropna(subset=['单位'], inplace=True)
- 1
- 2
- 3
- 4
- 5
去重
drop_duplicates(subset=[‘comment’], keep=‘first’, inplace=True)
data.drop_duplicates(keep='first', inplace=True)#(以行为单位去重)
- 1
- 2
参数:
subset: 列表的形式填写要进行去重的列名,默认为 None ,表示根据所有列进行。
keep: 可选参数有三个:first、 last、 False, 默认值 first。其中,
(1)first 表示: 保留第一次出现的重复行,删除后面的重复行。
(2)last 表示: 删除重复项,保留最后一次出现。
(3)False 表示: 删除所有重复项。
inplace:默认为 False ,删除重复项后返回副本。True,直接在原数据上删除重复项。
此处是借鉴的别人的,链接在下方:
原文链接:pandas根据某列去重
拆分
一个csv表格拆分为多个,直接拿的大佬的文章,写的很好,可以去看
原文链接:用Python将excel文件按列拆分为多个Excel
# -*- coding: utf-8 -*-
"""
将excel文件按照单位名称,拆分成多个excel文件
sheet名: 人数计算
区分字段名:单位
"""
import pandas as pd
data = pd.read_excel("D:\data\文件拆分实验.xls", sheet_name='人数计算')
#删除单位列的,空行数据
data.dropna(subset=['单位'], inplace=True)
# 第三步:获取 单位 列表并去重
department_list = list(data['单位'].drop_duplicates()) # 获取数据 单位 列,去重并放入列表
print(department_list)
# 第四步:按照类别分文件存放数据
for i in department_list:
department = data[data['单位'] == i]
department.to_excel('./' + str(i) + '单位.xlsx')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
写入csv
data.to_csv(csv_file, index=0, encoding='编码')
#index=0,不写入索引,很实用
#如果写入中文时有乱码,可以用utf-8-sig
- 1
- 2
- 3
总结:
以上就是我处理csv用到的一些方法,有需要的朋友可以拿去,也非常感谢那些大佬写的文章,让我受益匪浅。