首页 > 解决方案 > 我可以在不读取 A.csv 的情况下读取 B.csv 并在新列中写入 A.csv 吗?

问题描述

A(csv 文件)记录每天从股票网站爬取的股票价格。

Stock_num     Stock_name       20201201
0001           appl             201.3
0002           goog            1001.5

B(csv 文件) 从同一股票网站抓取最新数据

Stock_num     Stock_name       20201202
0001           appl               208.3 
0002           goog               999.8

我想使用 pandas 以以下格式将 B 写入 A(不读取 A)。

Stock_num     Stock_name       20201201    20201202
0001           appl             201.3         208.3 
0002           goog            1001.5         999.8

我在下面尝试过: B.to_csv('A.csv',index=False,mode='a', encoding='utf_8_sig')

但我得到的是:

Stock_num     Stock_name       20201201
0001           appl               201.3
0002           goog              1001.5
Stock_num     Stock_name       20201202
0001           appl               208.3 
0002           goog               999.8

我知道我可以读取 A.csv 并与 b.csv 连接,然后输出。但是有没有办法可以在不读取 A.csv 的情况下将 B.csv 写入A.csv?

标签: pythonpandascsvdask

解决方案


看看是否dask有助于它运行得更快。您仍在读取这两个文件,但使用以下命令可能会快数百倍/内存效率更高dask

import dask.dataframe as dd
A = dd.read_csv('Desktop/A.csv')
B = dd.read_csv('Desktop/B.csv')
df = A.merge(B)
df = df.compute()
df.to_csv('C.csv', index=False)

推荐阅读