你好,我有一个数据库,我正试图使一个.csv文件快速从。
我的数据是这样的。
Song_Name,File_Name,Artist_Name,Artist_ID
Song1,filename1,artistname,artist001
Song1,filename1,artistname,artist001
Song1,filename1,artistname,artist001
Song1,filename1,artistname,artist001
我就想让它看起来像这样。
Song_Name,,File_Name,Artist_Name,,Artist_ID
Song1,,filename1,artistname,,artist001
Song1,,filename1,artistname,,artist001
Song1,,filename1,artistname,,artist001
Song1,,filename1,artistname,,artist001
最好的办法是什么,谢谢.
3条答案
按热度按时间ubof19bj1#
您可以在CSV文件中插入空白"列",只需写入
None
或空字符串''
即可。例如:
您的CSV文件将正确地包括空白列所需的额外逗号,如果需要,还包括一个尾随逗号。
如果你使用
DictWriter
,那就更简单了,你不用把你想去掉的键填入字典:up9lanfz2#
对于未来的读者,我发布了一个替代方法来使用Pandas,如果csv在这个模块中可读的话(就像在最初的问题中一样)。
使用别名为 pd 的 Pandas,首先我们使用
pd.read_csv
读取数据(指定分隔符sep = ','
)。然后,我们创建一个DataFrame(df)只包含一个空列。我们将第一个DataFrame中的该列insert到我们想要的位置。然后,我们再次使用df.to_csv
将数据保存在csv中。让我们在代码中看到这一点,对于名为test.csv
的csv文件:然后,我们在文件
test.csv
中获得以下内容:注意,我选择
header = None
是为了避免第一行被当作标题。我这样做是因为最初的问题要求两个列完全为空(包括标题),并且一个 Dataframe 不能有两个同名的列。在我们的例子中,我们给予列的名称('col1','col2')并不重要,因为我们不会将它们保存在文件中:我们在保存csv时指定header = False
。qnzebej03#
这是我的答案来帮助你。
首先,我建议在IPython环境中使用Pandas,而不是Python内置的CSV阅读器。Pandas为处理表格数据提供了一些强大的功能。也就是说,下面是使用Python内置的CSV模块可以做的事情。
至于是使用Pandas还是简单地迭代文件,这要看情况而定--根据我自己的经验,我发现将一个大的CSV文件加载到Pandas中会产生相当大的内存开销,所以我改用Python的内置模块来处理数据文件,也就是说,我可能还没有足够深入地掌握Pandas。:-)