Python代码解析:从CSV读取特定列并导出到Excel

创始人
2025-01-11 00:15:55
0 次浏览
0 评论

Python学习笔记:从.CSV文件中读取特定列并转存至.xlsx文件

原始.CSV文件包含9列数据。
其中,第一列“东”、第二列“北”为坐标,第三列“高程”为海拔高度,第七列“Reslnv”为具体坐标。
对应一个物理量。
目标是用Python编写代码,从CSV文件中读取第1、2、3和7列并将它们保存到.xlsx文件中。
这是源代码:执行结果如下:代码说明如下:导入Python包。
该代码使用了pandas、numpy、tkinter和messagebox等库。
创建Tkinter窗口并隐藏主窗口。
打开文件选择对话框,选择.csv文件,然后返回文件路径。
确保选择该文件。
如果没有,会出现提示框。
浏览文件路径、读取CSV文件并提取特定列数据。
计算从数据点到第一个数据点的距离并添加新列。
对数据集重新排序以删除异常值。
创建Excel文件路径并保存处理后的数据。
将数据写入Excel文件并显示成功转换的文件数。

python读取cvs文件多少行多少列(2023年最新分享)

它们之间的线将被忽略。

注意。
如果Skip_blank_lines=True,则header参数会忽略注释行和空行,因此header=0指向数据的第一行而不是文件的第一行。

**names**:array-like,defaultNone

用于结果的列名称列表。
如果数据文件没有列标题行,则必须指定header=None。
去实现。
除非设置了mangle_dupe_cols=True,否则重复项不能出现在默认列表中。

index_col:intorsequenceorFalse,defaultNone

用作行索引的列号或列名称。
如果指定了序列,则有多个行索引。

如果文件是非标准形状,行尾有分隔符,可以设置index_col=False,防止pandas使用第一列作为行索引。

usecols:array-like,defaultNone

返回数据的子集。
列表中的值必须对应于文件中的位置(数字可以对应指定的列)或者。
是作为文件中的列名称传递的字符。
例如:有效的usecols参数可以是[0,1,2]或['foo','bar','baz']。
使用此选项可以加快加载时间并减少内存消耗。

as_recarray:boolean,defaultFalse

已弃用:此选项将在未来版本中删除。
使用pd.read_csv(...).to_records()代替。

返回重复的Numpy数组而不是DataFrame。
如果该参数设置为True。
将首先使用压缩选项。
并且行索引将不再可用,并且索引列将被忽略。

**squeeze**:boolean,defaultFalse

如果文件值包含列,则返回系列

**prefix**:str,defaultNone

如果没有列标题,则向列添加前缀。
例如:加上'X'成为X0,'表示为'X.0'...'X.N'。
如果设置为false,所有重复的列将被覆盖。

dtype:Typenameordictofcolumn-type,defaultNone

每个数据列的数据类型。
例如,{'a':np.float64,'b':np.int32}

**engine**:{'c','python'},可选

使用解析引擎。
Cengine引擎速度更快,Python引擎现在功能更强大。

使用的解析引擎。
你你可以选择C或Python。
C引擎速度更快,但Python引擎功能更完整。

converters:dict,defaultNone

列转换函数的字典。
键可以是列名或列号。

true_values:list,defaultNone

应视为True的值

false_values:list,defaultNone

应视为True的值应视为False

**skipinitialspace**:boolean,defaultFalse

忽略分隔符后的空格(默认为False,即不忽略)。

skiprows:list-likeorinteger,defaultNone

skiprows:list-likeorinteger,defaultNone

要忽略的行数(从文件开头开始)),或要跳过的行号列表(从0开始)。

skipfooter:int,default0

从文件末尾开始忽略。
(C引擎不支持)

skip_footer:int,default0

不推荐:推荐使用jumpfooter,其功能相同。

nrows:int,defaultNone

要读取的行数(从文件开头算起)。

na_values:scalar,str,list-like,ordict,defaultNone

用于替换NA/NaN的一组值。
如果传递参数,则必须为特定列指定空值。
默认值为“1.#IND”、“1.#QNAN”、“N/A”、“NA”、“NULL”、“NaN”、“nan”。

**keep_default_na**:bool,defaultTrue

如果指定了na_values参数并且Keep_default_na=False,那么默认的NaN值将被覆盖,否则将被添加。

**na_filter**:boolean,defaultTrue

是否检查缺失值(空字符串或空值)。
对于大文件,数据集中不存在空值。
设置na_filter=False可能会提高读取速度。

verbose:boolean,defaultFalse

是否显示各种解析器的输出信息,例如:“非数字列中缺失值的数量”等。

skip_blank_lines:boolean,defaultTrue

如果为True,则跳过空白行,否则将其写为NaN。

**parse_dates**:booleanorlistofintsornamesorlistoflistsordict,defaultFalse

infer_datetime_format:boolean,defaultFalse

如果设置为True并且parse_dates可用,pandas将尝试转换为日期类型,如果可以转换的话,转换一下方法,分析一下。
在某些情况下,速度会快5-10倍。

**keep_date_col**:boolean,defaultFalse

如果要合并多个列来解析日期,请保留连接中涉及的列。
默认为false。
双引号表示引用的元素用作单个元素。

escapechar:str(length1),defaultNone

如果引用的值为QUOTE_NONE,请指定该字符,使其不受分隔符限制。

comment:str,defaultNone

表示不解析冗余行。
如果该字符出现在行首,则整行将被忽略。
该参数只能包含一个字符。
空行(例如,skip_blank_lines=True)和注释行将被标题和空格忽略。
例如,如果为header=0的分析'#empty\na,b,c\n1,2,3'指定comment='#',则结果'a,b,c'将作为标头。

encoding:str,defaultNone

dialect:strorcsv.Dialectinstance,defaultNone

如果未指定特定语言,则如果sep大于1,则忽略该语言特点。
有关详细信息,请参阅文档csv.Dialect。

tupleize_cols:boolean,defaultFalse

Leavealistoftuplesoncolumnsasis(defaultistoconverttoaMultiIndexonthecolumns)

error_bad_lines:boolean,defaultTrue

如果行包含太多列,则不会返回默认的DataFrame。
如果设置为false,则换行符将被删除(仅在C解析器中)。

warn_bad_lines:boolean,defaultTrue

如果error_bad_lines=False且alert_bad_lines=True,则将打印所有“坏行”(仅在C解析器中可用)。

**low_memory**:boolean,defaultTrue

将块加载到内存中并以低内存消耗进行分析。
但可能会出现类型混乱。
为了防止类型混淆,必须将该值设置为False。
或者使用dtype参数指定类型。
请注意,使用chunksize或iterator选项读取块将导致整个文件被读入Dataframe,忽略类型(仅在C解析器中有效)

**buffer_lines**:int,defaultNone

已弃用,此参数将在未来版本中删除,因为它的值在分析器中已弃用。

compact_ints:boolean,defaultFalse

已弃用,以后版本中将在Removed中使用该选项。

如果设置Compact_ints=True,则任何整数类型的列都将存储为最小整数类型,无论是否有符号将取决于use_unsigned参数

use_unsigned:boolean,defaultFalse

已弃用:此参数将在未来版本。

如果整数列被压缩(即,compact_ints=True),请指定压缩列是有符号的还是无符号的。

memory_map:boolean,defaultFalse

如果使用的文件在内存中,则直接使用map文件。
使用此方法可以避免文件重复执行I/O操作。

链接:

Python如何读取CSV文件某一列中的每一行数据并判断该值是否符合条件?

要读取CSV文件,请使用csv.reader()方法。
返回的结果是_csv.reader对象。
我们可以迭代这个对象并输出每一行、特定行或特定列。
代码如下:

每一行都是一个列表,然后就可以使用条件命题了。

输出:上面是CTO关于Python的cvs文件有多少行的注释已读。
对文章相关内容的回应进行了总结。
希望您觉得这有帮助!如果您的问题解决了,请分享给关心这个问题的朋友~

怎么用python提取csv数据并筛选指定条件数据?

本文介绍了使用Python提取和过滤CSV数据的方法,以及数据可视化和结果存储的整个过程。
具体步骤如下:一是明确需求。
目标是从CSV文件中选择具有特定条件的数据,即特定范围内的日常​​数据,同时排除其他数据,在数据前后绘制直方图,并将结果导出为新文件。
然后读取CSV文件并将数据加载到DataFrame中。
以天为基准,提取0~45、320~365数据的样本,然后使用条件过滤,只保留blue_dif、green_dif、red_dif、inf_dif四列数据在指定范围内的样本。
创建布尔掩码掩码来过滤掉符合日期范围的数据。
使用apply函数和lambda表达式对于日期范围内的行,如果四列数据不在指定范围内,则将它们随机设置为NaN并以概率p=[0.9,0.1]设置。
使用dropna删除包含NaN值的行,完成数据过滤。
根据过滤条件,计算并存储处理后的数据子集。
使用Matplotlib创建直方图,分别显示原始数据和处理后数据的分布,并生成8个图形文件。
最后,将处理后的数据保存为新的CSV文件,文件路径由result_file_path指定。
运行代码后,您将获得8个直方图和目标CSV文件。
至此,数据提取、过滤、可视化和结果存储的整个过程就完成了。
热门文章
1
Python中的format()方法:字... formatformat在python中的含义2222.22E+00Format...

2
Python编程入门:全面解析Pytho... python的基本语法基本的Python语法如下:1.变量的定义。在编程语言中,...

3
Python字符串大小写转换方法全解析 python中字母的大小写转换怎么实现?在Python中,大小写转换由内置函数处...

4
Python字典:轻松获取最小值键与计算... python在一个字典里,返回值最小元素对应的键,救解在Python字典中,如果...

5
Python字符串去重空格:strip(... Python去除字符串中空格(删除指定字符)的3种方法在Python编程中,处理...

6
Python数组元素数量计算技巧分享 Python输出数组有多少个元素?简介:在本文中,首席CTO笔记将向您介绍Pyt...

7
简述python中pass的作用 pass语句的作用在许多编程语言中,包括Python;PASS语句用于在代码块中...

8
Python def 关键字详解:函数定... def是什么意思编程?戴夫是什么意思?def是Python中的函数定义关键字,用...

9
python不区分大小写的方法 Python字符串不区分大小写在Python中,字符串操作默认区分大小写。但有时...

10
Python字典操作全解析:添加、修改、... Pythondict字典基本操作(包括添加、修改、删除键...