python pandas处理csv表格(筛选,去重,分割,删除)

时间:2024-10-30 07:39:54

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用到的一些方法,有需要的朋友可以拿去,也非常感谢那些大佬写的文章,让我受益匪浅。