标签: csv

计算CSV Python中有多少行?

我正在使用python(Django Framework)来读取CSV文件.如您所见,我只从这个CSV中拉出2行.我一直想做的是在变量中存储CSV的总行数.

如何获得总行数?

file = object.myfilePath
fileObject = csv.reader(file)
for i in range(2):
    data.append(fileObject.next()) 
Run Code Online (Sandbox Code Playgroud)

我试过了:

len(fileObject)
fileObject.length
Run Code Online (Sandbox Code Playgroud)

python csv count

89
推荐指数
7
解决办法
17万
查看次数

如何在MongoDB中将集合导出为CSV?

如何将MongoDB集合中的所有记录导出到.csv文件中?

mongoexport --host localhost --db dbname --collection name --type=csv > test.csv
Run Code Online (Sandbox Code Playgroud)

这要求我指定我需要导出的字段的名称.我可以直接导出所有字段而不指定字段名称吗?

database csv mongodb schemaless

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

在数据框的选定列中包含NA(缺失)值的行的子集

我们有一个CSV文件的数据框.数据框DF包含包含观察值的列和VaR2包含测量日期的列().如果未记录日期,则CSV文件包含NA缺失数据的值.

Var1  Var2 
10   2010/01/01
20   NA
30   2010/03/01
Run Code Online (Sandbox Code Playgroud)

我们希望使用subset命令来定义一个新的数据框new_DF,使其只包含具有NA'column(VaR2)值的行.在给出的示例中,只有第2行将包含在新的中DF.

命令

new_DF<-subset(DF,DF$Var2=="NA") 
Run Code Online (Sandbox Code Playgroud)

不起作用,结果数据框没有行条目.

如果在原始CSV文件NA中交换 了值NULL,则相同的命令会产生所需的结果:new_DF<-subset(DF,DF$Var2=="NULL").

如果字符串NA在原始CSV文件中提供了值,那么如何使此方法有效?

csv r subset dataframe na

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

将数据帧直接保存到csv到s3 Python

我有一个pandas DataFrame,我想上传到新的CSV文件.问题是我不想在将文件传输到s3之前将其保存在本地.是否有像to_csv这样的方法直接将数据帧写入s3?我正在使用boto3.
这是我到目前为止:

import boto3
s3 = boto3.client('s3', aws_access_key_id='key', aws_secret_access_key='secret_key')
read_file = s3.get_object(Bucket, Key)
df = pd.read_csv(read_file['Body'])

# Make alterations to DataFrame

# Then export DataFrame to CSV through direct transfer to s3
Run Code Online (Sandbox Code Playgroud)

python csv amazon-s3 dataframe boto3

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

修剪一个巨大的(3.5 GB)csv文件以读入R

所以我有一个数据文件(分号分隔),它有很多细节和不完整的行(导致Access和SQL扼流).它的县级数据集分为段,子段和子子段(总共约200个因子),为期40年.简而言之,它是巨大的,如果我试着简单地阅读它,它就不适应内存.

所以我的问题是,鉴于我想要所有的县,但只有一年(而且只是最高级别的细分......最终导致大约100,000行),最好的方法是什么汇总到R?

目前我正试图用Python来消除不相关的年份,通过一次读取和操作一行来绕过文件大小限制,但我更喜欢只有R的解决方案(CRAN包可以).有没有类似的方法在R中一次读取一个文件?

任何想法将不胜感激.

更新:

  • 约束
    • 需要使用我的机器,所以没有EC2实例
    • 仅作为R-only.在这种情况下速度和资源不是问题...只要我的机器不爆炸...
    • 如下所示,数据包含混合类型,我需要稍后进行操作
  • 数据
    • 数据为3.5GB,大约850万行和17列
    • 几千行(~2k)格式错误,只有一列而不是17列
      • 这些完全不重要,可以放弃
    • 我只需要这个文件中的~10,000行(见下文)

数据示例:

County; State; Year; Quarter; Segment; Sub-Segment; Sub-Sub-Segment; GDP; ...
Ada County;NC;2009;4;FIRE;Financial;Banks;80.1; ...
Ada County;NC;2010;1;FIRE;Financial;Banks;82.5; ...
NC  [Malformed row]
[8.5 Mill rows]
Run Code Online (Sandbox Code Playgroud)

我想砍掉一些列并从40个可用年份中挑选两个(2009-2010从1980年到2020年),这样数据可以适用于R:

County; State; Year; Quarter; Segment; GDP; ...
Ada County;NC;2009;4;FIRE;80.1; ...
Ada County;NC;2010;1;FIRE;82.5; ...
[~200,000 rows]
Run Code Online (Sandbox Code Playgroud)

结果:

在修改了所有建议后,我认为JD和Marek建议的readLines效果最好.我给了Marek支票,因为他提供了一个示例实施.

我在这里为我的最终答案复制了一个略微改编的Marek实现版本,使用strsplit和cat来保留我想要的列.

还应当指出,这是MUCH比Python效率较低......在,巨蟒通过要吃掉5分钟3.5GB文件,而R取约60 ...但如果你只为R,那么这是罚单.

## Open a connection separately to hold the cursor position
file.in <- file('bad_data.txt', 'rt')
file.out <- file('chopped_data.txt', 'wt')
line …
Run Code Online (Sandbox Code Playgroud)

csv r

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

使用CSV Django模块以通用换行模式打开文件

我试图访问model.filefieldDjango 中使用该模块解析Python中的CSV文件csv.它在Windows上工作,但在Mac上它给了我这个:

Exception Type: Error

Exception Value: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
Run Code Online (Sandbox Code Playgroud)

这是代码:

myfile = customerbulk.objects.all()[0].fileup

mydata = csv.reader(myfile)
    for email,mobile,name,civilid in mydata:
        print email,mobile,name,civilid
Run Code Online (Sandbox Code Playgroud)

csv django macos newline python-2.x

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

如何从JDBC ResultSet中获取列数?

我正在使用CsvJdbc(它是csv文件的JDBC驱动程序)来访问csv文件.我不知道csv文件包含多少列.如何获得列数?这有什么JDBC功能吗?我在java.sql.ResultSet中找不到任何方法.

为了访问该文件,我使用类似于CsvJdbc网站上的示例的代码.

java csv jdbc resultset

85
推荐指数
3
解决办法
12万
查看次数

如何将数据从SQL Server 2005导出到MySQL

我一直在SQL Server 2005试图获取大量数据.我已经获得了一个包含近300个表的数据库,我需要将其转换为MySQL数据库.我的第一个调用是使用bcp,但不幸的是它没有生成有效的CSV - 字符串没有封装,所以你不能处理任何带有逗号的字符串(或者你用作分隔符的任何行)我仍然需要手工编写所有的create table语句,因为很明显CSV并没有告诉你有关数据类型的任何信息.

更好的是,如果有一些工具可以连接到SQL Server和MySQL,然后进行复制.您丢失了视图,存储过程,触发器等,但是复制仅使用基本类型从一个数据库到另一个数据库的表并不困难......是吗?

有人知道这样的工具吗?我不介意它做了多少假设或简化发生,只要它支持整数,浮点数,日期时间和字符串.我不得不做很多修剪,正常化等等,所以我不关心保持键,关系或类似的东西,但我需要快速的初始数据集!

mysql sql-server csv bcp sql-server-2005

84
推荐指数
5
解决办法
9万
查看次数

Excel CSV - 数字格式

我将报告生成为CSV文件.当我尝试在Excel中打开文件时,它会根据单元格的内容对数据类型进行假设,并相应地重新格式化.

例如,如果CSV文件包含

...,005,...
Run Code Online (Sandbox Code Playgroud)

然后Excel将其显示为5.有没有办法覆盖它并显示005?

我宁愿对文件本身做一些事情,这样用户只需双击CSV文件即可打开它.

我使用Excel 2003.

csv excel formatting number-formatting

84
推荐指数
3
解决办法
20万
查看次数

如何使用jq将任意简单JSON转换为CSV?

使用jq,如何将浅层对象数组的任意JSON编码转换为CSV?

这个网站上有大量的问答,涵盖了对字段进行硬编码的特定数据模型,但是这个问题的答案应该适用于任何JSON,唯一的限制是它是一个具有标量属性的对象数组(没有深/复/子对象,扁平化这些是另一个问题).结果应包含一个标题行,给出字段名称.将优先考虑保留第一个对象的字段顺序的答案,但这不是必需的.结果可以用双引号括起所有单元格,或者只包含那些需要引用的单元格(例如'a,b').

例子

  1. 输入:

    [
        {"code": "NSW", "name": "New South Wales", "level":"state", "country": "AU"},
        {"code": "AB", "name": "Alberta", "level":"province", "country": "CA"},
        {"code": "ABD", "name": "Aberdeenshire", "level":"council area", "country": "GB"},
        {"code": "AK", "name": "Alaska", "level":"state", "country": "US"}
    ]
    
    Run Code Online (Sandbox Code Playgroud)

    可能的输出:

    code,name,level,country
    NSW,New South Wales,state,AU
    AB,Alberta,province,CA
    ABD,Aberdeenshire,council area,GB
    AK,Alaska,state,US
    
    Run Code Online (Sandbox Code Playgroud)

    可能的输出:

    "code","name","level","country"
    "NSW","New South Wales","state","AU"
    "AB","Alberta","province","CA"
    "ABD","Aberdeenshire","council area","GB"
    "AK","Alaska","state","US"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 输入:

    [
        {"name": "bang", "value": "!", "level": 0},
        {"name": "letters", "value": "a,b,c", "level": 0},
        {"name": "letters", "value": "x,y,z", "level": 1},
        {"name": "bang", "value": …
    Run Code Online (Sandbox Code Playgroud)

csv json jq

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