iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么用Python Pandas处理CSV文件
  • 154
分享到

怎么用Python Pandas处理CSV文件

2023-07-02 00:07:00 154人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“怎么用python pandas处理CSV文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python Pandas处理CSV文件”吧!读取Pand

本篇内容主要讲解“怎么用python pandas处理CSV文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python Pandas处理CSV文件”吧!

读取Pandas文件

df = pd.read_csv(file_path, encoding='GB2312')print(df.info())

注意:Pandas的读取格式默认是UTF-8,在中文CSV中会报错:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd1 in position 2: invalid continuation byte

修改编码为 GB2312 ,即可,或者忽略encode转义错误,如下:

df = pd.read_csv(file_path, encoding='GB2312')df = pd.read_csv(file_path, encoding='unicode_escape')

df.info()显示df的基本信息,例如:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3840 entries, 0 to 3839
Data columns (total 16 columns):
 #   Column         Non-Null Count  Dtype  
---  ------         --------------  -----  
 0   实验时间批次         3840 non-null   object 
 1   物镜倍数           3840 non-null   object 
 2   板子编号           3840 non-null   object 
 3   板子编号及物镜倍数      3840 non-null   object 
 4   图名称            3840 non-null   object 
 5   细胞类型           3840 non-null   object 
 6   板子孔位置          3840 non-null   object 
 7   孔拍摄位置          3840 non-null   int64  
 8   细胞培养基          3840 non-null   object 
 9   细胞培养时间(小时)     3840 non-null   int64  
 10  扰动类别           3840 non-null   object 
 11  扰动处理时间(小时)     3840 non-null   int64  
 12  扰动处理浓度(ug/ml)  3840 non-null   float64
 13  标注激活(1/0)      3840 non-null   int64  
 14  unique         3840 non-null   object 
 15  tvt            3840 non-null   int64  
dtypes: float64(1), int64(5), object(10)
memory usage: 480.1+ KB

统计列值出现的次数

df[列名].value_counts(),如df["扰动类别"].value_counts():

df["扰动类别"].value_counts()

输出:

coated OKT3                720
OKT3                       720
coated OKT3+anti-CD28      576
DMSO                       336
anti-CD28                  288
PBS                        288
Nivo                       288
Pemb                       288
empty                      192
coated OKT3 + anti-CD28    144
Name: 扰动类别, dtype: int64

直接绘制value_counts()的柱形图,参考Pandas - Chart Visualization:

import matplotlib.pyplot as plt%matplotlib inlineplt.close("all")plt.figure(figsize=(20, 8))df["扰动类别"].value_counts().plot(kind="bar")# plt.xticks(rotation='vertical', fontsize=10)plt.show()

柱形图:

怎么用Python Pandas处理CSV文件

筛选特定列值

df.loc[筛选条件],筛选特定列值之后,重新赋值,只处理筛选值,也可以写入csv文件。

df_plate1 = df.loc[df["板子编号"] == "plate1"]df_plate1.info()# df.loc[df["板子编号"] == "plate1"].to_csv("batch4_iOStrain_klasses_utf8_plate1.csv")  # 存储CSV文件

注意:筛选的内外两个df需要相同,否则报错

pandas loc IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).

输出,数据量由3840下降为1280。

<class 'pandas.core.frame.DataFrame'>
Int64Index: 1280 entries, 0 to 1279
Data columns (total 16 columns):
 #   Column         Non-Null Count  Dtype  
---  ------         --------------  -----  
 0   实验时间批次         1280 non-null   object 
 1   物镜倍数           1280 non-null   object 
 2   板子编号           1280 non-null   object 
 3   板子编号及物镜倍数      1280 non-null   object 
 4   图名称            1280 non-null   object 
 5   细胞类型           1280 non-null   object 
 6   板子孔位置          1280 non-null   object 
 7   孔拍摄位置          1280 non-null   int64  
 8   细胞培养基          1280 non-null   object 
 9   细胞培养时间(小时)     1280 non-null   int64  
 10  扰动类别           1280 non-null   object 
 11  扰动处理时间(小时)     1280 non-null   int64  
 12  扰动处理浓度(ug/ml)  1280 non-null   float64
 13  标注激活(1/0)      1280 non-null   int64  
 14  unique         1280 non-null   object 
 15  tvt            1280 non-null   int64  
dtypes: float64(1), int64(5), object(10)
memory usage: 170.0+ KB

遍历数据行

for idx, row in df_plate1_lb0.iterrows():,通过row[“列名”],输出具体的值,如下:

for idx, row in df_plate1_lb0.iterrows():    img_name = row["图名称"]    img_ch_fORMat = img_format.format(img_name, "{}")    for i in range(1, 7):        img_path = os.path.join(plate1_img_folder, img_ch_format.format(i))        img = cv2.imread(img_path)        print('[Info] img shape: {}'.format(img.shape))    break

输出:

[Info] img shape: (1080, 1080, 3)
[Info] img shape: (1080, 1080, 3)
[Info] img shape: (1080, 1080, 3)
[Info] img shape: (1080, 1080, 3)
[Info] img shape: (1080, 1080, 3)
[Info] img shape: (1080, 1080, 3)

绘制直方图(柱状图)

统计去除背景颜色的灰度图字典

# 去除背景颜色pix_bkg = np.argmax(np.bincount(img_gray.ravel()))img_gray = np.where(img_gray <= pix_bkg + 2, 0, img_gray)img_gray = img_gray.astype(np.uint8)# 生成数值数组hist = cv2.calcHist([img_gray], [0], None, [256], [0, 256]) hist = hist.ravel()# 数值字典hist_dict = collections.defaultdict(int)for i, v in enumerate(hist):    hist_dict[i] += int(v)# 去除背景颜色,已经都统计到0,所以0值非常大,删除0值,观察分布hist_dict[0] = 0

绘制柱状图:

  • plt.subplots:设置多个子图,figsize背景尺寸,facecolor背景颜色

  • ax.set_title:设置标题

  • ax.bar:x轴的值,y轴的值

  • ax.set_xticks:x轴的显示间隔

  • plt.savefig:存储图像

  • plt.show:展示

fig, ax = plt.subplots(1, 1, figsize=(10, 8), facecolor='white')ax.set_title('channel {}'.format(ci))n_bins = 100ax.bar(range(n_bins+1), [hist_dict.get(xtick, 0) for xtick in range(n_bins+1)])ax.set_xticks(range(0, n_bins, 5))plt.savefig(res_path)plt.show()

效果:

怎么用Python Pandas处理CSV文件

到此,相信大家对“怎么用Python Pandas处理CSV文件”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么用Python Pandas处理CSV文件

本文链接: https://www.lsjlt.com/news/338716.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用Python Pandas处理CSV文件
    本篇内容主要讲解“怎么用Python Pandas处理CSV文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python Pandas处理CSV文件”吧!读取Pand...
    99+
    2023-07-02
  • python怎么用pandas读写和追加csv文件
    这篇文章将为大家详细讲解有关python怎么用pandas读写和追加csv文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。csv文件CSV文件是最常用的一个文件存储方式。逗号分隔值(Common-Sep...
    99+
    2023-06-29
  • python用pandas读写和追加csv文件
    目录csv文件一、创建csv文件二、读写csv文件1.基础python2.pandas三、追加csv文件1.基础python2.pandas总结csv文件 CSV文件是最常用的一个文...
    99+
    2022-11-13
  • 如何用Python处理CSV文件
    这篇文章主要介绍“如何用Python处理CSV文件”,在日常操作中,相信很多人在如何用Python处理CSV文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python处理CSV文件”的疑惑有所帮助!...
    99+
    2023-07-02
  • Python怎么读写txt文件和转换csv文件与pandas条件
    这篇文章主要介绍“Python怎么读写txt文件和转换csv文件与pandas条件”,在日常操作中,相信很多人在Python怎么读写txt文件和转换csv文件与pandas条件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-06-02
  • python如何处理csv文件
    使用python处理csv文件的方法:1.新建python项目;2.导入csv库;3.使用open()函数打开文件,并创建文件对象;4.使用reader()和writer()函数获取文件对象;5.使用writerow()方法向文件中写入数据...
    99+
    2022-10-18
  • 怎么用pandas处理hdf5文件
    本篇内容介绍了“怎么用pandas处理hdf5文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是HDF5HDF5:Hierarchic...
    99+
    2023-06-13
  • python使用pandas读取csv文件的方法
    目录pandas读取csv文件的操作1. 读取csv文件在这里记录一下,python使用pandas读取文件的方法用到pandas库的read_csv函数 # -*- coding:...
    99+
    2022-12-23
    python 读取csv文件 pandas读取csv文件
  • pandas怎么将数据写入csv文件
    在使用Pandas将数据写入CSV文件时,可以使用`to_csv()`方法。以下是具体的步骤:1. 导入Pandas库:```pyt...
    99+
    2023-09-15
    pandas
  • Python中Pandas怎么读取文件和读取CSV参数
    本篇内容主要讲解“Python中Pandas怎么读取文件和读取CSV参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中Pandas怎么读取文件和读取CSV参数”吧!一、Pandas...
    99+
    2023-07-06
  • 使用Python pandas读取CSV文件应该注意什么?
    示例文件 将以下内容保存为文件 people.csv。 id,姓名,性别,出生日期,出生地,职业,爱好 1,张小三,m,1992-10-03,北京,工程师,足球 2,李云义,m,...
    99+
    2022-11-12
  • python处理csv文件的方法是什么
    在Python中处理CSV(逗号分隔值)文件有多种方法,以下是其中几种常用的方法:1. 使用csv模块:Python内置的csv模块...
    99+
    2023-09-15
    python
  • Python数据处理pandas读写操作IO工具CSV怎么使用
    这篇“Python数据处理pandas读写操作IO工具CSV怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Pytho...
    99+
    2023-07-02
  • 怎么用Python读取CSV文件
    这篇文章主要介绍了怎么用Python读取CSV文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。典型的数据集stocks.csv:一个股票的数据集,其实就是常见的表格数据。有...
    99+
    2023-06-25
  • Python中CSV文件怎么使用
    本篇内容介绍了“Python中CSV文件怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、csv文件介绍1、csv文件简介逗号分隔值...
    99+
    2023-07-02
  • python利用pandas和csv包向一个csv文件写入或追加数据
    目录1. 使用pandas2. 使用csv附:pandas dataframe 向csv文件追加列、追加行1. 向csv文件追加写入行2. 向csv文件追加写入列总结1. 使用pan...
    99+
    2023-08-08
    python中的csv写入 python写入csv文件 python追加写入文件
  • 十分钟教会你用Python处理CSV文件
    目录前言Python库:csv读取csv文件使用csv.reader读取数据使用csv.DictReader读取数据写入csv文件使用csv.writer写入数据使用csv.Dict...
    99+
    2022-11-11
  • 怎么使用Python读写CSV文件
    这篇文章主要介绍了怎么使用Python读写CSV文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python读写CSV文件文章都会有所收获,下面我们一起来看看吧。1. 读取CSV文件 csv.read...
    99+
    2023-07-02
  • Python使用pandas导入csv文件内容的示例代码
    目录使用pandas导入csv文件内容1. 默认导入2. 指定分隔符3. 指定读取行数4. 指定编码格式5. 列标题与数据对齐使用pandas导入csv文件内容 1. 默认导入 在P...
    99+
    2022-12-23
    Python导入csv文件内容 Python pandas导入csv文件
  • Python详解复杂CSV文件处理方法
    目录项目简介项目笔记与心得1.分批处理与多进程及多线程加速2.优化算法提高效率总结项目简介 鉴于项目保密的需要,不便透露太多项目的信息,因此,简单介绍一下项目存在的难点: 海量数据:...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作