如何连接两个csv文件然后按python排序

Posted

技术标签:

【中文标题】如何连接两个csv文件然后按python排序【英文标题】:how to concat two csv file and then sort by python 【发布时间】:2016-02-29 06:58:59 【问题描述】:

我有两个名为 all_cv.csv 和 common_cv.csv 的 .csv 文件。首先,我通过 pandas 将这两个 csv 文件连接起来,然后将数据保存到 pandas 名为 join_cv_common.csv 的新文件中。之后,我通过 pandas 对 join_cv_common.csv 文件进行了如下排序,并将存储的数据存储到一个名为 sorted_cv_common.csv 的新文件中。我想重写pandas的这两个函数——concat和sort by pure python(2.6和3.4)。有人可以在这方面帮助我吗?非常感谢。

Pandas concat 函数

cv = pd.read_csv('all_cv.csv')

ac = pd.read_csv('common_cv.csv')

merged = pd.concat([cv, ac])

merged.to_csv('join_cv_common.csv')

熊猫排序功能

df = pd.read_csv('join_cv_common.csv')

df = df.sort(["adv_id", "conv_id"])

df.to_csv('sorted_cv_common.csv')

【问题讨论】:

在写入 csv 之前没有排序的任何原因? 让我澄清一下:你想“用纯 Python 重写 pandas.concatpandas.sort”吗?是什么阻止您使用 pandas 中的实现?谢谢。 【参考方案1】:

使用文件 i/o 和列表排序

据我所知,这可以通过使用文件 i/o 读取两个文件来完成,然后只需加入并将字符串转换为列表,然后对新创建的列表进行排序并通过转换将其放入最终输出 csv列表到一个字符串。 以下是它的代码实现。

123.csv

1,a

2,b

4,d

456.csv

3,c

5,d

使用文件打开功能读取d1和d2中的csv文件

d = d1 + '\n' +  d2
lst = d.split('\n')
data = "\n".join(sorted(lst))

【讨论】:

以上是关于如何连接两个csv文件然后按python排序的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中按日期对 CSV 进行排序

按两个字段对 Python 列表进行排序

按美元金额对 csv 列进行排序,然后删除重复项

python将两个csv文件按列合并为一个csv

Bash:按前 4 列对 csv 文件进行排序

如何对大量 csv 文件进行排序以按特定顺序读取它们?