在 Python 中将行从一个 CSV 附加到另一个

Posted

技术标签:

【中文标题】在 Python 中将行从一个 CSV 附加到另一个【英文标题】:Appending rows from one CSV to another in Python 【发布时间】:2019-07-11 23:39:12 【问题描述】:

我已经为此查看了许多解决方案,但找不到适合我想要做的事情的解决方案。

基本上我有 2 个 CSV 文件:

所有.csv

1   Wed Oct 03  41.51093923 41.51093923 41.51093923 41.51093923         
2   Wed Oct 04                          
3   Wed Oct 05  41.43764015 41.43764015 41.43764015             
4   Wed Oct 06  41.21395681 41.21395681 41.21395681             
5   Wed Oct 07  42.07607442 42.07607442 42.07607442             
6   Wed Oct 08  42.0074109  42.0074109  42.0074109              
7   Wed Oct 09  41.21395681 41.21395681                 
8   Wed Oct 10  41.43764015 41.43764015 41.43764015 41.43764015 
9   Wed Oct 11  41.21395681 41.21395681 41.21395681 41.21395681

原始.csv

10  Wed Oct 12  41.43764015             
11  Wed Oct 13                  
12  Wed Oct 14  42.07607442 42.07607442 42.07607442     
13  Wed Oct 15  41.43764015 41.43764015 41.43764015 41.43764015
14  Wed Oct 16  41.21395681 41.21395681 41.21395681 41.21395681
15  Wed Oct 17                  
16  Wed Oct 18  42.07607442 42.07607442 42.07607442 

我想将original.csv 附加到all.csv,只需将original.csv 中的所有行合并到all.csv 的最后一行下方即可:

1   Wed Oct 03  41.51093923 41.51093923 41.51093923 41.51093923         
2   Wed Oct 04                          
3   Wed Oct 05  41.43764015 41.43764015 41.43764015             
4   Wed Oct 06  41.21395681 41.21395681 41.21395681             
5   Wed Oct 07  42.07607442 42.07607442 42.07607442             
6   Wed Oct 08  42.0074109  42.0074109  42.0074109              
7   Wed Oct 09  41.21395681 41.21395681                 
8   Wed Oct 10  41.43764015 41.43764015 41.43764015 41.43764015 
9   Wed Oct 11  41.21395681 41.21395681 41.21395681 41.21395681
10  Wed Oct 12  41.43764015             
11  Wed Oct 13                  
12  Wed Oct 14  42.07607442 42.07607442 42.07607442     
13  Wed Oct 15  41.43764015 41.43764015 41.43764015 41.43764015
14  Wed Oct 16  41.21395681 41.21395681 41.21395681 41.21395681
15  Wed Oct 17                  
16  Wed Oct 18  42.07607442 42.07607442 42.07607442 

如您所见,数据没有标题,并且行的长度各不相同。这只是我正在使用的文件类型的一个示例,但我想获得一个可以在任何 CSV 上运行的解决方案。

我正在使用 Python3,到目前为止,我尝试过使用 pandas 库,但没有成功。

任何建议都会很棒,谢谢。

【问题讨论】:

你能在使用pandas时展示你的尝试吗? how to combine two data frames in python pandas的可能重复 how to merge 200 csv files in python的可能重复 【参考方案1】:

您不需要使用pandas。只需将一个 csv 附加到另一个:

with open('original.csv', 'r') as f1:
    original = f1.read()

with open('all.csv', 'a') as f2:
    f2.write('\n')
    f2.write(original)

输出:

1   Wed Oct 03  41.51093923 41.51093923 41.51093923 41.51093923
2   Wed Oct 04
3   Wed Oct 05  41.43764015 41.43764015 41.43764015
4   Wed Oct 06  41.21395681 41.21395681 41.21395681
5   Wed Oct 07  42.07607442 42.07607442 42.07607442
6   Wed Oct 08  42.0074109  42.0074109  42.0074109
7   Wed Oct 09  41.21395681 41.21395681
8   Wed Oct 10  41.43764015 41.43764015 41.43764015 41.43764015
9   Wed Oct 11  41.21395681 41.21395681 41.21395681 41.21395681
10  Wed Oct 12  41.43764015
11  Wed Oct 13
12  Wed Oct 14  42.07607442 42.07607442 42.07607442
13  Wed Oct 15  41.43764015 41.43764015 41.43764015 41.43764015
14  Wed Oct 16  41.21395681 41.21395681 41.21395681 41.21395681
15  Wed Oct 17
16  Wed Oct 18  42.07607442 42.07607442 42.07607442

【讨论】:

以上是关于在 Python 中将行从一个 CSV 附加到另一个的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual C# 中将选定行从 DataGridView 移动到另一个

在 SQL 中将行从一个表复制到另一个表

将整行从一张excel表复制到另一张表的下一个空行

在 Python 2.7.3 中将 csv 文件附加到一个空列表中 - 获取一个空列表

使用特定于列的重复过滤器在 Python 中将行附加到 CSV

将数据行从一个表归档到另一个表