尝试构建 pandas 面板时出现错误

I get an error when I try to construct a pandas panel

好的,我正在尝试构建一个 pandas 面板。我的输入数据是 "All the shares prices in the National Stock Exchange index (NIFTY) for August 2015"。大约有 1500 只顶级股票乘以(开盘价、最高价、最低价、收盘价、成交量)乘以数据可用的天数(大约 21 天)。

我的代码是:

for files in glob.glob('*.txt')
   for data in files:
      frame = pd.read_csv(data)
      df = pd.append(frame)
matrix3d = pd.append(df)
matrix3d.head(10)

我收到一个错误...文件 E 不存在

glob.glob() returns 文件名列表。示例 -

>>> glob.glob('*.txt')
['a.txt', 'abcd.txt']

因此,在您的代码中 files 实际上是每个 *.txt 的完整文件名。当您再次遍历它时,实际上是在遍历每个字符。喜欢 -

>>> for file in glob.glob('a.txt'):
...     for data in file:
...             print(data)
...
a
.
t
x
t

然后你试图在上面调用 pd.read_csv()。它不会工作,除非您在当前工作目录中有该名称的 csv。

我想第二次迭代 data 不需要。你应该简单地尝试 -

df = pd.DataFrame()
for files in glob.glob('*.txt')
    frame = pd.read_csv(data)
    df = df.append(frame)

请注意我把它从 pd.append() 改成了 df.append() , pandas 模块中没有直接附加功能,只有 pandas.DataFrame.append() (或 series.append() ,但我猜你可能想要 df.append 来处理你的情况)。