​python中pandas读取csv文件​时如何省去csv.reader()操作指定列步骤

 更新时间:2022年01月26日 17:12:58   作者:bulabula2022    
这篇文章主要介绍了​python中pandas读取csv文件​时如何省去csv.reader()操作指定列步骤,对正在工作的你可能有一定的帮助,需要的朋友可以参考一下

优点:

  • 方便,有专门支持读取csv文件的pd.read_csv()函数。
  • 将csv转换成二维列表形式
  • 支持通过列名查找特定列。
  • 相比csv库,事半功倍

1.读取csv文件

import pandas as pd
 
file="c:\data\test.csv"
csvPD=pd.read_csv(file)
 
df = pd.read_csv('data.csv', encoding='gbk') #指定编码
 
 
read_csv()方法参数介绍
filepath_or_buffer:文件所在路径
encoding :编码,字符型,通常为'utf-8',如果中文读取不正常,可以将encoding设为'gbk'
sep:分隔符,默认为一个英文逗号,即','
delimiter :备选分隔符,如果指定了delimiter则sep失效
header :整数或者由整数组成的列表,以用来指定由哪一列或者哪几列作为列名,默认为header=0,表示第一列作为列名
eg:  pd.read_csv('data.csv', encoding='gbk', header=1) # 指定第二列作为列名
     pd.read_csv('data.csv', encoding='gbk', header=[0,1,3])
     pd.read_csv('data.csv', encoding='gbk', header=None) #表示不从文件数据中指定行作为列名,这是Pandas会自动生成从零开始的序列作为列名
 
names:一个列表,为数据额外指定列名。
pd.read_csv('data.csv', encoding='gbk', names=['第一列', '第二列', '第三列', '第四列'])

2.#指定列:通过索引指定列名获取列

data_new[] 建立空表存储行信息
for i in range(len(csvPD)):
    lst_new = []  # 建立空列表存储行信息
    if "未知版本" in str(csvPD['版本组件'][i]):
        print(csvPD['版本组件'][i])
        # print(csvPD['匹配数量'][i])
        # print(csvPD['git'][i])
        # print(csvPD['来源链接'][i])
        lst_new.append(csvPD['版本组件'][i])
        lst_new.append(csvPD['匹配数量'][i])
        lst_new.append(csvPD['git'][i])
        lst_new.append(csvPD['来源链接'][i])
 
        data_new.append(lst_new)  # 添加每行信息

3.根据index查询

条件:首先导入的数据必须的有index
或者自己添加吧,方法简单,读取excel文件时直接加index_col

代码示例:

import pandas as pd                     #导入pandas库
 
excel_file = './try.xlsx'               #导入excel数据
data = pd.read_excel(excel_file, index_col='姓名')        
#这个的index_col就是index,可以选择任意字段作为索引index,读入数据
print(data.loc['李四'])                #使用loc函数来查找

4.已知数据在第几行找到想要的数据

假如我们的表中,有某个员工的工资数据为空了,那我们怎么找到自己想要的数据呢。

代码如下:

for i in data.columns:
    for j in range(len(data)):
        if (data[i].isnull())[j]:
            bumen = data.iloc[j, [0]]                             #找出缺失值所在的部门
            data[i][j] = charuzhi(bumen)

首先检索全部的数据,然后我们可以用pandas中的iloc函数。上面的iloc[j, [2]]中j是具体的位置,【0】是你要得到的数据所在的column

"""根据条件查询某行数据"""
import pandas as pd            #导入pandas库
 
excel_file = './try.xlsx'        #导入文件
data = pd.read_excel(excel_file)      #读入数据
 
print(data.loc[data['部门'] == 'A', ['姓名', '工资']])     #部门为A,打印姓名和工资
print(data.loc[data['工资'] < 3000, ['姓名','工资']])    #查找工资小于3000的人

若要把这些数据独立生成excel文件或者csv文件:

添加以下代码:

"""导出为excel或csv文件"""
dataframe_1 = data.loc[data['部门'] == 'A', ['姓名', '工资']]
dataframe_2 = data.loc[data['工资'] < 3000, ['姓名', '工资']]
dataframe_1.to_excel('dataframe_1.xlsx')
dataframe_2.to_excel('dataframe_2.xlsx')
 
data.iloc[:,:2]  #即全部行,前两列的数据
 
 
data['columns']  #columns即你需要的字段名称即可
#注意这列的columns不能是index的名称
#如果要打印index的话就data.index
data.columns  #与上面的一样
 
data.iloc[:10,:][data.工资>6000] #找出前11行里工资大于6000的所有人的信息了

5.指定单元格:1001A列23时的AQI值

keyWord="1001A"
for i in range(len(csvPD)):
    if str(csvPD['hour'][i])=="23" and str(csvPD['type'][i])== "AQI":
        result=csvPD[keyWord][i]
        print(result)
        

解决遇到的"NAN":

  • csv文件中:1001A站点0时的AQI为空白值,返回的结果为NAN
  • NAN全称:Not A Number

常规解决思路:

使用numpy函数来判断:np.isnan()xxx is np.nan
通过运算操作判断:任何数字乘上0都是0
读取文件时加参数:pd.read_csv(file, keep_default_na=False)

到此这篇关于​python中pandas读取csv文件​时如何省去csv.reader()操作指定列步骤的文章就介绍到这了,更多相关​python中pandas读取csv文件 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现ftp文件传输系统(案例分析)

    python实现ftp文件传输系统(案例分析)

    最近做了一个简单的文件传输系统,基于ftp协议,使用python语言开发,虽然python里面已经有ftplib模块,可以很容易的实现ftp服务器,这篇文章主要介绍了python实现ftp文件传输系统的案例分析,需要的朋友可以参考下
    2020-03-03
  • Python爬虫入门案例之回车桌面壁纸网美女图片采集

    Python爬虫入门案例之回车桌面壁纸网美女图片采集

    读万卷书不如行万里路,学的扎不扎实要通过实战才能看出来,今天小编给大家带来一个python爬虫案例,采集回车桌面网站的美女图片,大家可以在过程中查缺补漏,看看自己掌握程度怎么样
    2021-10-10
  • Python BentoML构建部署和管理机器学习模型技巧掌握

    Python BentoML构建部署和管理机器学习模型技巧掌握

    BentoML是一个开源的Python框架,旨在简化机器学习模型的打包、部署和管理,本文将深入介绍BentoML的功能和用法,提供详细的示例代码和解释,帮助你更好地理解和应用这个强大的工具
    2024-01-01
  • 利用Python的装饰器解决Bottle框架中用户验证问题

    利用Python的装饰器解决Bottle框架中用户验证问题

    这篇文章主要介绍了Python的Bottle框架中解决用户验证问题,代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • 100 个 Python 小例子(练习题二)

    100 个 Python 小例子(练习题二)

    这篇文章主要继续上一篇文章100 个 Python 小例子(练习题一)来完成100 个 Python 小例子,本文包括字母识词、反向输出II、表转字符串、设置输出颜色、算素数等例子,需要的朋友可以参考一下
    2021-10-10
  • 健身房被搭讪?用python写了个小米计时器助人为乐

    健身房被搭讪?用python写了个小米计时器助人为乐

    今天教大家Python图形界面开发的相关知识,文章围绕着如何实现一个小米手机上的秒表计时器功能展开,文中有非常详细的代码示例,需要的朋友可以参考下
    2021-06-06
  • python paramiko利用sftp上传目录到远程的实例

    python paramiko利用sftp上传目录到远程的实例

    今天小编就为大家分享一篇python paramiko利用sftp上传目录到远程的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 解决pytorch中的kl divergence计算问题

    解决pytorch中的kl divergence计算问题

    这篇文章主要介绍了解决pytorch中的kl divergence计算问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python版简单工厂模式

    python版简单工厂模式

    这篇文章主要为大家详细介绍了python版简单工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Pytorch BCELoss和BCEWithLogitsLoss的使用

    Pytorch BCELoss和BCEWithLogitsLoss的使用

    这篇文章主要介绍了Pytorch BCELoss和BCEWithLogitsLoss的使用详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05

最新评论