【发布时间】:2021-04-15 07:29:38
【问题描述】:
我目前存储了一些来自网站的数据,这些数据已为网站的每个产品抓取到 .csv 中。由于它是一个非常受欢迎的网站,我获得了 30,000 多个 csv,我需要合并为一个。我并不是真正的 pandas 专家,但我的第一反应是依赖 concat() 函数。也就是说,我的代码是这样的:
df = pd.DataFrame(columns=["product_id", "price"])
for file in onlyfiles:
df1 = pd.read_csv(file)
df = pd.concat([df, df1])
其中 onlyfiles 表示存储我的所有数据帧的目录。它可以工作,但随着数据帧数量的增加,它开始变慢。但是,这显然不是实现这一目标的最佳有效方式。有人知道在这里使用更有效的方法吗?
感谢您的帮助。
【问题讨论】:
-
您能否在将文件转换为数据框之前将它们合并为一个?
cat *.csv > big.csv -
检查stackoverflow.com/questions/48051100/…是否有帮助...
-
也许您需要将所有 csv 文件合并为一个大文件,然后删除带有标题的多余行并使用 pandas 读取?
-
如果所有这些文件都具有结构(产品 ID 和价格),我会按照 Grizzle 的建议将它们与
cat ./* > main.csv合并。 -
@Grizzle 我真的没想到猫!我马上试试,谢谢你的建议!