Python版本:Python 2.7.13 :: Anaconda自定义(64位)pandas版本:pandas 0.20.2 你好, 我有一个相当简单的要求。 我想阅读一个Excel文件,并写入一个特定的工作表到CSV文件。 在编写csv文件时,应将源Excel文件中的空白值作为空白处理/写入。 但是,我的空白logging总是写入输出文件的“南”。 (没有引号) 我通过方法读取Excel文件 read_excel(xlsx,sheetname ='sheet1',dtype = str) 我指定dtype,因为我有一些列是数字,但应被视为string。 (否则,他们可能会失去前导0等),即我想读取每个细胞的确切值。 现在我通过to_csv(output_file,index = False,mode ='wb',sep =',',encoding ='utf-8')输出.csv文件。 但是,我的结果csv文件包含来自excel文件的所有空白单元格的nan。 我错过了什么? 我已经尝试过.fillna('',inplace = True)函数,但似乎没有对我的数据做任何事情。 我也尝试将参数na_rep =''添加到to_csv方法,但没有成功。 谢谢你的帮助! 附录:请在下面find一个可重复的例子。 请在下面find一个可重复的示例代码。 请首先用2列创build一个新的Excel文件,内容如下:COLUMNA COLUMNB COLUMNC 01testing02testing 03testing (我将这个Excel文件保存到c:\ test.xls请注意,列B的第一行和第三行以及列C的第二行是空的/空的) 现在这是我的代码: import pandas as pd xlsx = pd.ExcelFile('c:\\test.xlsx') df = pd.read_excel(xlsx, sheetname='Sheet1', dtype = […]
我有一个包含日志条目的CSV文件的文件夹。 对于CSV的每个条目,如果Risk属性不是Low且不是None,那么我把它放在一个累积CSV对象中。 从那里, 我想直接导入到Excel工作簿,而不必将CSV保存到文件 。 $CSVPaths = (Split-Path $PSCommandPath) $AccumulateExportPath = (Split-Path $PSCommandPath) $FileName="Accumulate" $Acc=@() Foreach ($csv in (Get-ChildItem C:\Scripts\Nessus\Sheets |? {$_.Extension -like ".csv" -and $_.BaseName -notlike "$FileName"})) { $Content = Import-CSV $csv.FullName Foreach ($Log in $Content) { If ($Log.Risk -ne "None" -and $Log.Risk -ne "Low") { $Acc+=$Log } } } $CSV = $ACC |ConvertTo-CSV […]
我有这个excel表,我试图将这个excel表转换成csv文件。 本表中的列是以date格式(如7/4/2017年7 date )的数据列。 我写了这段代码,但是这不是正确地转换date字段数据: import xlrd import csv def Excel2CSV(ExcelFile, SheetName, CSVFile): workbook = xlrd.open_workbook(ExcelFile) worksheet = workbook.sheet_by_name(SheetName) csvfile = open(CSVFile, 'w',encoding='utf8') wr = csv.writer(csvfile,delimiter=';') for rownum in range(worksheet.nrows): wr.writerow(worksheet.row_values(rownum)) csvfile.close() 我在Excel中的示例数据是这样的: 4/7/2017 value02 value03 4/5/2017 value12 value13 4/14/2017 value22 value23 4/10/2017 value32 value33 当我执行我的上面的代码,这是在输出中看到: 42832.0;value02;value03 42830.0;value12;value13 42839.0;value22;value23 42835.0;value32;value33 正如你所看到的date提交数据没有得到正确的转换。 我在这里犯了什么错误?
我有一些Python的经验,但我不是一个专家,所以在这里我很容易。 我有一个Python脚本,可以自动发送电子邮件报告给全天的人们。 现在,电子邮件地址都存储在脚本本身,但我希望将电子邮件地址存储在外部文件,其他人可以编辑谁收到他们,而不必打开脚本本身。 脚本中有不同的电子邮件列表,我正在努力弄清楚如何将其转换为文件。 因此,例如,这些可能是三个电子邮件列表,因为它们将被存储在Python中: Group_A = ['ABC@yahoo.com', 'def@gmail.com'] Group_B = ['xyz@yahoo.com', tuv@gmail.com'] Group_C = ['hij@yahoo.com', klm@gmail.com'] 我如何将它们存储在外部文件中并让Python将它们作为单独的列表读取? 我很好地使用Excel(通过Openpyxl或Pandas读取)或CSV甚至txt文档,但是让Python读取文件并将电子邮件地址存储在自己的列表中的最佳方式是什么? 列表的名字也需要在文件中设置,因为每个列表都会根据它的名字得到一个单独的电子邮件。
我试图把一堆CSV文件放到一个工作簿中,这里是我的代码: import csv import glob import openpyxl import os, sys import pandas as pd import xlsxwriter as xlwr def main(): list_of_files = [] names = [] for csv_file in glob.glob(os.path.join('.', '*.csv')): bleh = csv_file[2:] name = bleh[:-4] names.append(name) df = pd.read_csv(csv_file, index_col=None, header=0) list_of_files.append(df) writer = pd.ExcelWriter('non_concussed_game_logs.xlsx') for n, df in enumerate(list_of_files): df.to_excel(writer, '%s' % […]
我想知道是否有一种方法可以将选中的.csv文件放在“汇总”表格中的单元格中。 这里是上传.csv文件的代码: Dim ws As Worksheet, strFile As String Set ws = ActiveWorkbook.Sheets("Input Raw Data") 'set to current worksheet name strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "Please select text file…") With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1")) .TextFileParseType = xlDelimited .TextFileCommaDelimiter = True .Refresh End With 我不确定是否有办法做到这一点,在此先感谢。
在这个项目中,我已经将一个csv文件转换为一个xls文件和一个txt文件到一个xls文件。 目标是比较两个xls文件的差异,并打印出第三个excel文件的差异。 但是,当打印差异时,它们包含任何整数大于999的条目,因为从我的转换后的csv文件中的任何整数都被视为string而不是整数。 因此,由于转换后的csv excel文件中的逗号,它会将诸如1200(在我的转换后的xls文件中)的值与1200(在我的转换后的txt文件中)的值不同。 我的问题是:有没有办法将string解释的整数转换回被解释为整数? 否则,有没有办法从我的xls文件中删除所有的逗号? 我尝试了通常的dataframe.replace方法,它是无效的。 以下是我的代码: #import required libraries import datetime import xlrd import pandas as pd #define the time_handle function to name the outputted excel files time_handle = datetime.datetime.now().strftime("%Y%m%d_%H%M") #identify XM1 file paths (for both csv origin and excel destination) XM1_csv = r"filepath" XM2_excel = r"filepath" + time_handle + ".xlsx" #identify […]
我有一个CSV文件,我试图从中删除HTML标签,并且所有行都返回。 使用<*>执行查找/replace操作会返回“此公式存在问题”错误。 尝试\<*>得到错误“我们找不到任何要replace的东西”。 尝试这个VBA什么都不做 – 它运行成功,但所有的标签仍然存在: Sub t() With Range("A1:AE60165") .Replace Chr(10), " " .Replace Chr(13), " " .Replace vbCr, " " .Replace vbLf, " " .Replace vbCrLf, " " .Replace "<*>", "" End With End Sub 该macros也不会删除任何换行符或回车符。 用Char!10)或Char(13)做一个查找/replace也不会做任何事情。 我试过的最后一件事是Worksheetfunction.Clean(Range("A1")) ,它也什么都不做。 但如果在A2 ,我使用=CLEAN(A1) ,它成功地删除了换行符。 尽pipe数据集非常大,但是我不能在所有的单元格上这样做。 我甚至无法从所有单元格中成功删除@ 。 我刚刚运行它,它删除了23个实例,但即使我select的单元格有一个@但没有被删除。 我怀疑这是CSV的东西,因为我不知道它为什么如此复杂。 这是一个很多的数据,所以一个函数不可能是最好的select。 这可能是一些Unicodetypes的问题? 编辑:FWIW,我使用profiles.csv在这里find,因为我学习Python它只是玩弄。 这里有一个pastebin链接到less量的数据,但我不知道它在该网站“翻译”有多好。
我正在导入一个固定宽度的文本文件到Excel然后导出它。 我试图找出如何保存格式时保存。 在导入时,我尝试过使用.NumberFormat,它在导入时强制格式化,但在导出时忽略格式。 我已经导入的文本文件: 我的出口例程: Option Explicit Sub CreateFixedWidthFile(strFile As String, ws As Worksheet, s() As Integer) Dim i As Long, j As Long Dim strLine As String, strCell As String 'get a freefile Dim fNum As Long fNum = FreeFile 'open the textfile Open strFile For Output As fNum 'loop from first to last […]
由于单元格值内的逗号,我无法使用.xls(x)的ssconvert实用程序进行csv转换。 是否有可能使用ssconvert (命令行电子表格格式转换器)直接从xlsx创build制表符分隔值? ssconvert infile.xlsx outfile.tsv引发Unable to guess exporter to use错误。 因此,我试图在一些导出选项的规范下生成一个原始文本文件,特别是分隔符: ssconvert -O 'separator=\t format=raw' infile.xlsx outfile.txt 这导致输出如value1\tvalue2\tvalue3 ,即string\t不会被转换成tabulator。 有什么build议么?