如何读取下面的CSV文件?
1,"A towel,",1.0
42," it says, ",2.0
1337,is about the most ,-1
0,massively useful thing ,123
-2,an interstellar hitchhiker can have.,3
如何将下面的data
写入CSV文件?
data = [
(1, "A towel,", 1.0),
(42, " it says, ", 2.0),
(1337, "is about the most ", -1),
(0, "massively useful thing ", 123),
(-2, "an interstellar hitchhiker can have.", 3),
]
7条答案
按热度按时间vfwfrxfs1#
下面是一些简单完整的例子,介绍如何用Python读取CSV文件和编写CSV文件。
纯Python语言:
之后,
data_read
的内容为请注意CSV只读取字符串。您需要手动转换为列类型。
之前有一个Python 2 + 3版本(link),但现在是Python 2 support is dropped,去掉Python 2的东西大大简化了这个答案。
相关
微处理器
看看我的实用程序包
mpu
,它是一个非常简单和容易记住的程序包:Pandas
更多信息请参见
read_csv
docs。请注意panda会自动推断是否有标题行,但您也可以手动设置。如果您还没有听说过Seaborn,我建议您看一看它。
其他
许多其他库都支持读取CSV文件,例如:
dask.dataframe.read_csv
spark.read.csv
创建CSV文件
常见文件结尾
.csv
处理数据
在将CSV文件读取到元组/字典列表或Pandas Dataframe 后,它只是简单地处理这类数据。
替代品
对于您的应用程序,以下内容可能很重要:
另请参阅:Comparison of data serialization formats
如果您正在寻找一种创建配置文件的方法,您可能需要阅读我的短文Configuration files in Python
vyu0f0g12#
如果需要-不使用csv模块读取csv文件:
pbpqsu0x3#
如果你正在处理CSV数据,并且想要一个比
pandas
占用空间更小的解决方案,你可以试试我的包littletable。可以通过管道安装,或者只是作为一个包含你自己代码的. py文件放入,所以非常便携,适合无服务器应用程序。读取CSV数据就像调用
csv_import
一样简单:图纸:
(
littletable
使用rich模块显示表格。)littletable
不会自动尝试转换数值数据,因此需要为数值列使用数值转换函数。这给出:
数值列右对齐而不是左对齐。
littletable
还具有其他类似于ORM的特性,如索引、联接、透视和全文搜索。或转置:
也可以输出其他格式,例如Markdown:
它将从Markdown呈现为
| 状态|1号|二号|
| - ------|- ------|- ------|
| 均值|二百七十五点六|二十五点六|
| 最小值|-2个|-1人|
| 最大值|1337|一百二十三|
| 方差|小行星352390.3|小行星2966.8|
| 标准偏差|小行星593.6247|54.468339427597755美元|
| 计数|五个|五个|
| 缺失|无|无|
最后,下面是一个文本搜索,可以搜索包含单词"hitchhiker"的任何条目:
图纸:
命名空间(数字1 = -2,words ='星际搭便车者可以拥有.',数字2 = 3)
zphenhs44#
写入CSV文件
首先,您需要导入csv
例如:
bis0qfac5#
d5vmydt96#
使用Pandas读取csv文件
创建并写入csv文件
下面的例子演示创建和写入一个csv文件。要使一个动态文件写入器,我们需要导入一个包导入csv,然后需要创建一个示例的文件与文件引用Ex:
这里,如果文件不存在于提到的文件目录中,那么python将在指定的目录中创建一个相同的文件,
w
代表write,如果你想读取一个文件,那么用r
替换w
,或者添加到现有的文件中,那么用a
。newline=""
指定每次创建行时删除一个额外的空行,因此为了消除空行,我们使用newline=""
,使用列表创建一些字段名(列名),如下所示:然后应用于编写器示例,如下所示:
这里使用字典编写器并分配列名,要将列名写入csv,我们使用
writer.writeheader()
,要写入值,我们使用writer.writerow({"Names":"John","Age":20,"Class":"12A"})
,而写入文件值必须使用字典方法传递,这里的键是列名,值是您各自的键值。导入csv:
n9vozmp47#
我写了一个问题,问类似的问题。所以,为了把所有的东西都放在一个地方,这里是我的2美分,一个非常快速和肮脏的解决方案。
这段代码的目的是从一个CSV文件读取并写入另一个CSV文件。输出行的格式是固定的,我可以使用带有正确分隔符的csv.write,但在这种情况下,我必须做额外的工作来指定空格。但它很好地显示了如何使用良好的旧print()函数输出文本:
不好意思弄凹了。
这段代码打开一个CSV文件进行阅读,并使用print()函数写入一个格式化字符串,如下所示: