Python 为什么在读取/加载保存的文件后,数据帧的形状会发生变化?
我希望我的代码能够完成以下任务:Python 为什么在读取/加载保存的文件后,数据帧的形状会发生变化?,python,pandas,dataframe,Python,Pandas,Dataframe,我希望我的代码能够完成以下任务: (1, 7) Year Month Day Ticker Type Quantity Value 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 (1, 8) Unnamed: 0 Year Month Day Ticker Type Quantity Value 0 0 0.0 0.0 0.0 0.0 0.0 0
(1, 7)
Year Month Day Ticker Type Quantity Value
0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
(1, 8)
Unnamed: 0 Year Month Day Ticker Type Quantity Value
0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
- 检查文件夹中是否有名为“分类账”的文件。这很有效
- 如果没有,则创建一个文件。这很有效
- 如果是,请读取文件,更新文件中的内容,并保存文件,以保持文件的形状。这不管用
import glob
import numpy as np
import os
import pandas as pd
from os import listdir
# DEFINE PATH, STATE SUFFIX OF FILE, AND GET NUMBER OF FILES ENDING WITH SUFFIX
path = r'ledger'
suff = r'.csv'
file = listdir(path)
file = [item for item in file if item.endswith(suff)]
# CHECK IF LEDGER IS AVAILABLE, AND IF NOT, CREATE ONE
if len(file) == 0:
save = np.zeros([1, 7])
save = pd.DataFrame(save, columns = ['Year', 'Month', 'Day', 'Ticker', 'Type', 'Quantity', 'Value'])
print(save.shape)
print(save)
save.to_csv(os.path.join(path, r'ledger.csv'))
else:
load = pd.read_csv(os.path.join(path, r'ledger.csv'))
load = pd.DataFrame(load)
print(load.shape)
print(load)
如果文件不存在,打印功能将产生以下结果:
(1, 7)
Year Month Day Ticker Type Quantity Value
0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
(1, 8)
Unnamed: 0 Year Month Day Ticker Type Quantity Value
0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
但是,如果文件存在,则会读取该文件,并且打印功能会生成以下内容:
(1, 7)
Year Month Day Ticker Type Quantity Value
0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
(1, 8)
Unnamed: 0 Year Month Day Ticker Type Quantity Value
0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
我不确定我能做些什么来保持数据帧的大小不变。当作为数据帧加载时,原始文件的索引似乎正在添加。如果您有任何建议,我们将不胜感激。我认为问题在于,当您写入文件时,您也会写入索引
save.to_csv(os.path.join(path, r'ledger.csv'), index = False)
这将阻止将索引写入文件。当您阅读此文件时,它应该有七列我认为问题在于,当您写入文件时,您也会写入索引
save.to_csv(os.path.join(path, r'ledger.csv'), index = False)
这将阻止将索引写入文件。当您读取此文件时,它应该有七列