Python代码解析:从CSV读取特定列并导出到Excel
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文件。
至此,数据提取、过滤、可视化和结果存储的整个过程就完成了。