标签: import-csv

Pandas csv-import:在列中保持前导零

我正在使用研究数据导入Pandas数据框read_csv.

我的主题代码是6个数字编码,其中包括出生日期.对于我的一些主题,这导致具有前导零的代码(例如"010816").

当我导入Pandas时,前导零被剥离,列被格式化为int64.

有没有办法可以将此列导入为字符串?

我尝试为列使用自定义转换器,但它不起作用 - 好像自定义转换发生在Pandas转换为int之前.

python types pandas import-csv

41
推荐指数
5
解决办法
3万
查看次数

MySQL导入csv表时无效的UTF8字符串

我想通过以下方式将.csv文件导入MySQL数据库:

load data local infile 'C:\\Users\\t_lichtenberger\\Desktop\\tblEnvironmentLog.csv'
into table tblenvironmentlog
character set utf8
fields terminated by ';'
lines terminated by '\n'
ignore 1 lines;
Run Code Online (Sandbox Code Playgroud)

.csv文件如下所示: 在此输入图像描述

但我收到以下错误,我无法解释原因:

Error Code: 1300. Invalid utf8 character string: 'M'
Run Code Online (Sandbox Code Playgroud)

有什么建议?

mysql csv utf-8 character-encoding import-csv

13
推荐指数
3
解决办法
4万
查看次数

读取CSV文件一些缺少的列

我正在尝试使用以下代码将CSV文件读入我的VB.net应用程序:

While Not EOF(1)
    Input(1, dummy)
    Input(1, phone_number)
    Input(1, username)
    Input(1, product_name)
    Input(1, wholesale_cost)
    Input(1, dummy)
    Input(1, dummy)
End While
Run Code Online (Sandbox Code Playgroud)

我的CSV文件(如文本)如下所示:

Customer Name,Phone Number,Username,Product,Wholesale Cost,Sales Price,Gross Profit, Customer Reference
  ,00000000000,00000000000,Product Name,25.00,35.00,10.00,
  ,00000000000,00000000000,Product Name,1.00,1.40,0.40,
Run Code Online (Sandbox Code Playgroud)

如您所见,并非所有字段都包含在内,因此在读取文件时会显示错误,因为它无法到达行尾.

我该如何处理这种类型的文件?

有时字段会在某些行上存在,而其他字段则不存在.

UPDATE

我已经尝试过Zenacity提供的答案,但是当尝试sArray(1)在循环内部使用时它会返回Index was outside the bounds of the array

.net vb.net csv import-csv

12
推荐指数
2
解决办法
1425
查看次数

R使用fread colClasses或跳过参数来读取没有列标题的csv

我想能够跳过被读成R经由列data.tablefread在v1.8.9功能.但我正在阅读的csv,没有列标题...这似乎是一个问题的fread ...有没有办法只指定我不想要特定的列?

是否更好地预先分配一个列名,然后让它读取它以便可以跳过它?

举个例子......

我从以下URL下载了数据

http://www.truefx.com/dev/data/2013/MAY-2013/AUDUSD-2013-05.zip

拉开它......

并使用fread将csv读入R并且它与csv扩展名具有几乎相同的文件名.

system.time(pp <- fread("AUDUSD-2013-05.csv",sep=","))
  user  system elapsed 
16.427   0.257  16.682 

head(pp)
       V1                    V2      V3      V4
1: AUD/USD 20130501 00:00:04.728 1.03693 1.03721
2: AUD/USD 20130501 00:00:21.540 1.03695 1.03721
3: AUD/USD 20130501 00:00:33.789 1.03694 1.03721
4: AUD/USD 20130501 00:00:37.499 1.03692 1.03724
5: AUD/USD 20130501 00:00:37.524 1.03697 1.03719
6: AUD/USD 20130501 00:00:39.789 1.03697 1.03717

str(pp)
Classes ‘data.table’ and 'data.frame':  4060762 obs. of  4 variables:
$ V1: chr  "AUD/USD" "AUD/USD" "AUD/USD" "AUD/USD" ... …
Run Code Online (Sandbox Code Playgroud)

r fread data.table import-csv

8
推荐指数
1
解决办法
7744
查看次数

fread in R将一个大的.csv文件作为一行数据框导入

我正在将一个大的.csv文件导入R(大约50万行),所以我一直在尝试使用data.table包中的fread()作为read.table()和read.csv( ).但是,fread()返回一个数据框,其中包含一行内行中的所有数据,即使它具有正确的列数.我发现2013年的错误报告显示这与integer64数据类有关:

http://r-forge.r-project.org/tracker/index.php?func=detail&aid=2786&group_id=240&atid=975

是否有任何修复或方法来解决这个问题?

我正在尝试读取的.csv文件完全是整数,范围从0到10000,没有丢失的数据.我在Windows 7计算机上使用R版本2.15.2,版本1.8.8的data.table包.

我正在运行的代码是:

require(data.table)
fread("pre2012_alldatapoints.csv", sep = ",", header= TRUE)-> pre
head(pre)

1: 1 22 -105 22 -105
2: 2 22 -105 22 -105
3: 3 20 -105 20 -105
4: 4 21 -105 21 -105
5: 5 21 -105 21 -105
6: 6 21 -105 21 -105

dim(pre)
[1] 12299  5 #dim returns the correct number of dimensions
#this is a subset of the file I want to import that I've confirmed imports correctly with …
Run Code Online (Sandbox Code Playgroud)

import r data.table import-csv

8
推荐指数
1
解决办法
3万
查看次数

Out-GridView显示一个空白列,其中有实际数据

我有这个CSV文件: 在此输入图像描述

实际的CSV数据用";"分隔 , 像这样:

[2017-04-27 15:45:04] ;x;/x;Succes;
Run Code Online (Sandbox Code Playgroud)

您可以看到有一个"Terminaison"列,其中包含成功或失败信息.我的目标是在Gridview中显示文件的所有列.

我正在做 :

import-csv "C:\x\Journal\Capsule\CapsulePoste.csv" -Delimiter ";"
Run Code Online (Sandbox Code Playgroud)

并获得包含适当数据的所有列的所需输出:

在此输入图像描述

现在我的问题是:当我想在GridView中显示所有内容时,"terminaison"列全部为空?为什么?所有其他列都正确显示...:

import-csv "C:\x\Journal\Capsule\CapsulePoste.csv" -Delimiter ";" | out-gridview
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我发现标题末尾的空格(csv文件的第一行)导致了这个...

Date;Trousse;Version;Demandeur;Action;Paramètres;Terminaison 
Run Code Online (Sandbox Code Playgroud)

(在"Terminaison"之后那里有一个空白处)

如果我在记事本中编辑csv并删除该空白区域,宾果游戏,它的工作原理.但是这并不能解决我的问题,因为我不想事先编辑文件.什么是这个奇怪的限制,是否有解决方法?


编辑:

下面提供的答案很棒.我最终使用另一个选项,我发现值得添加的可能性:

$content = Get-Content C:\x\Journal\Capsule\CapsulePoste.csv 
$content | Foreach {$_.TrimEnd()} | Set-Content C:\x\Journal\Capsule\CapsulePoste.csv
import-csv "C:\x\Journal\Capsule\CapsulePoste.csv" -Delimiter ";"| sort-object Date -descending
Run Code Online (Sandbox Code Playgroud)

powershell import-csv

7
推荐指数
2
解决办法
491
查看次数

将csv加载到redshift而不经过S3

我正在使用 SQL Workbench /J 与 Redshift 集群交互,我想将 CSV 文件(大约 500k 行)加载到 Redshift 表中(我有插入权限),而不使用 COPY 命令(因为我没有权限复制到s3)。

你知道它是否可行(可能使用插入),如果可行,你能帮我吗?

请注意,我拥有的唯一权限是:选择、插入、更新和删除集群内的表。

谢谢。

amazon-s3 amazon-redshift import-csv

6
推荐指数
1
解决办法
6158
查看次数

如何从csv获取数据到python对象中

我是一个初学者python用户。无法以所需的对象格式将数据从 csv 获取到 python 以满足 python 函数。如果我在 python 中手动创建数据(而不是从 csv 中引入),则以下代码有效:

class Student(object):
   pass

john = Student()
#score tuple
john.score = (85.0, 42.0/2.0)

bob = Student()
bob.score = (45.0, 19.0/2.0)

john.rank = 1
bob.rank = 2

ExternalCode.AdjustStudents([john, bob])
Run Code Online (Sandbox Code Playgroud)

但是,我需要它自动工作,而不必每次都手动输入数据,因为会有数千个更新 - 因此需要能够从 csv 中引入数据。

csv文件格式为:john, 85, 21, 1 bob, 45, 9.5, 2

Student 对象将具有分数属性(第 2 列和第 3 列作为元组)以及排名属性(第 4 列)。所需的对象格式与上面手动代码生成的格式相同。

手动代码生成的所需格式的一个示例是,当我在手动代码之后执行以下打印时:

print(" John: score1={0[0]:.3f} score2={0[1]:.3f}".format(john.skill)) 
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

约翰: score1=25.000 score2=8.333

干杯,

史蒂夫

object python-3.x import-csv

6
推荐指数
1
解决办法
7494
查看次数

带有德国变音符号的导入-CSV/导出-Csv (ä,ö,ü)

我在处理 csv 导出时遇到了一个小问题,其中包含像 ä,ö,ü(德语元音变音)这样的变异元音

我只是导出

Get-WinEvent -FilterHashtable @{Path=$_;ID=4627} -ErrorAction SilentlyContinue |export-csv -NoTypeInformation -Encoding Default -Force ("c:\temp\CSV_temp\"+ $_.basename + ".csv")
Run Code Online (Sandbox Code Playgroud)

这工作正常。我的 csv 文件中有 ä,ö,ü 正确。

之后我做了一些排序:

Get-ChildItem 'C:\temp\*.csv' |
    ForEach-Object { Import-Csv $_.FullName } |
    Sort-Object { [DateTime]::ParseExact($_.TimeCreated, $pattern, $culture) } |
    Export-Csv 'C:\temp\merged.csv' -Encoding Default -NoTypeInformation -Force
Run Code Online (Sandbox Code Playgroud)

我尝试了所有编码、ASCII、BigEndianUnicode、UniCode,但都没有成功。

导出和排序时如何保留特殊字符 ä,ö,ü 等?

powershell character-encoding import-csv export-csv

6
推荐指数
1
解决办法
1万
查看次数

PowerShell:将 16MB CSV 导入 PowerShell 变量会创建超过 600MB 的 PowerShell 内存使用量

我试图理解为什么当我导入一个大约 16MB 的文件作为变量时 PowerShell 的内存膨胀这么多。我可以理解围绕该变量存在额外的内存结构,但我只是想了解它为什么那么高。这是我在下面所做的 - 只是任何人都可以运行的另一个脚本的精简片段。

笔记/问题

  1. 不是抱怨,而是试图理解为什么使用如此多,以及是否有更好的方法来做到这一点或更有效地管理内存以尊重我正在运行的系统。
  2. 在 PowerShell 5.1 和刚刚发布的 PowerShell 7、RC3 中也会出现相同的行为。我不认为这是一个错误,只是让我了解更多信息的另一个机会。
  3. 我的总体目标是运行一个 foreach 循环来检查另一个小得多的数组是否与此数组匹配或缺少匹配。

我的测试代码

Invoke-WebRequest -uri "http://s3.amazonaws.com/alexa-static/top-1m.csv.zip" -OutFile C:\top-1m.csv.zip

Expand-Archive -Path C:\top-1m.csv.zip -DestinationPath C:\top-1m.csv

$alexaTopMillion = Import-Csv -Path C:\top-1m.csv
Run Code Online (Sandbox Code Playgroud)

对任何回答这个问题的人:感谢您的时间并帮助我每天学习更多!

memory powershell memory-profiling pscustomobject import-csv

5
推荐指数
1
解决办法
854
查看次数