我正在使用研究数据导入Pandas数据框read_csv.
我的主题代码是6个数字编码,其中包括出生日期.对于我的一些主题,这导致具有前导零的代码(例如"010816").
当我导入Pandas时,前导零被剥离,列被格式化为int64.
有没有办法可以将此列导入为字符串?
我尝试为列使用自定义转换器,但它不起作用 - 好像自定义转换发生在Pandas转换为int之前.
我想通过以下方式将.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)
但我收到以下错误,我无法解释原因:
Error Code: 1300. Invalid utf8 character string: 'M'
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我正在尝试使用以下代码将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
我想能够跳过被读成R经由列data.table的fread在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) 我正在将一个大的.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) 实际的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) 我正在使用 SQL Workbench /J 与 Redshift 集群交互,我想将 CSV 文件(大约 500k 行)加载到 Redshift 表中(我有插入权限),而不使用 COPY 命令(因为我没有权限复制到s3)。
你知道它是否可行(可能使用插入),如果可行,你能帮我吗?
请注意,我拥有的唯一权限是:选择、插入、更新和删除集群内的表。
谢谢。
我是一个初学者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
干杯,
史蒂夫
我在处理 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,但都没有成功。
导出和排序时如何保留特殊字符 ä,ö,ü 等?
我试图理解为什么当我导入一个大约 16MB 的文件作为变量时 PowerShell 的内存膨胀这么多。我可以理解围绕该变量存在额外的内存结构,但我只是想了解它为什么那么高。这是我在下面所做的 - 只是任何人都可以运行的另一个脚本的精简片段。
笔记/问题
我的测试代码
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
import-csv ×10
powershell ×3
csv ×2
data.table ×2
r ×2
.net ×1
amazon-s3 ×1
export-csv ×1
fread ×1
import ×1
memory ×1
mysql ×1
object ×1
pandas ×1
python ×1
python-3.x ×1
types ×1
utf-8 ×1
vb.net ×1