【问题标题】:Converting Multiple Excel Files Into One将多个 Excel 文件合二为一
【发布时间】:2020-11-13 16:30:32
【问题描述】:

我将多个 excel 文件保存在一个文件夹中,我将其转换为一个数据框。我编写了一个 python 代码来将所有的 csv 文件合并到一个数据框中。问题是列格式不是我所期望的。这意味着原始文件包含单独的 Open、High、Low、Close 和 Volume 函数,但合并的 Data Frame 包含所有这些数据合并为一个。我想合并文件,以保留原始列格式,即打开、高、低、关闭、成交量是单独的列。

这是我的代码:

import os
import pandas as pd
os.chdir("C:/Users/Administrator/Desktop/Zerodha/Day2/")
path = "C:/Users/Administrator/Desktop/Zerodha/Day2/"
files =os.listdir(path)
values =pd.DataFrame()
for f in files:
    data = pd.read_csv(f, delim_whitespace=True)
    values = values.append(data)

这是我的主数据帧的输出:

Values Data Frame

但是,我希望主数据框具有如下所示的单独列:

Original Files

我们将不胜感激。

谢谢。

【问题讨论】:

  • 提供相关 CSV 文件之一的纯文本 sn-p。 Excel 隐藏了列分隔符,因此 CSV 数据的屏幕截图 - 正如 Excel 所理解的那样 - 在这种情况下没有帮助。
  • Excel 和 CSV 文件没有任何共同之处。 CSV 只是一个使用逗号作为分隔符的纯文本文件。 Excel 文件是一个 ZIP 包,其中包含具有特定架构的 XML 文件。您可以像任何其他文本文件一样通过连接它们来组合 CSV 文件,只要它们没有标题。显然,你不能用 ZIP 包做到这一点

标签: python export-to-csv


【解决方案1】:

尝试使用与 CSV 文件内容匹配的列分隔符。例如,如果 CSV 文件的纯文本内容类似于以下内容,请使用 pd.read_csv(f, delimiter=',')

date,open,high,low,close,volume
2020-11-09 09:15:00+05:30,10.25,10.45,10.25,10.45,300

原因是pandas.read_csv(fileobj, delim_whitespace=True) 期望空格作为列分隔符。如果 CSV 文件具有我的示例中假定的格式(逗号分隔),则使用 delim_whitespace=True 将导致遇到问题。

来自pandas.read_csv() docsdelim_whitespace 的sn-p:

delim_whitespace: bool,默认为 False

指定是否将空格(例如 ' ' 或 ' ')用作 sep。相当于设置 sep='\s+'。如果此选项设置为 True,则不应为 delimiter 参数传递任何内容。

【讨论】:

  • 如果将文件导入数据库然后从数据库中读取,应用程序运行速度会更快。
猜你喜欢
  • 2020-08-05
  • 2015-01-12
  • 1970-01-01
  • 2011-11-15
  • 1970-01-01
  • 2011-04-28
  • 2014-03-01
  • 2020-12-16
  • 2020-06-12
相关资源
最近更新 更多