这是我的代码:
import pandas as pd
import os, glob
from pandas import Panel
import sqlite3
my_dir = '/home/manish/Desktop/Equity/'
filelist = []
fileList = []
os.chdir(my_dir)
for files in glob.glob('*.txt'):
p = pd.read_csv(files, names = ['Name', 'Date', 'Open', 'High',
'Low', 'Close', 'Volume', 'Null'])
del p['Null']
print p
p.to_csv('monthly.csv', sep = ',')
#Even this does not work
#p.to_csv('monthly.csv', sep = ',')
我的问题是数据正确打印到屏幕上,但是当我将其保存到 csv 时,它只保存 1 个特定日期的数据。
最佳答案
你应该这样做:
my_dir = '/home/manish/Desktop/Equity/'
filelist = []
os.chdir(my_dir)
dfs = []
for files in glob.glob('*.txt'):
dfs.append(pd.read_csv(files, names = ['Name', 'Date', 'Open', 'High',
'Low', 'Close', 'Volume', 'Null']))
p = pd.concat(dfs)
del p['Null']
print p
p.to_csv('monthly.csv', sep = ',')
基本上,我将从 csv 文件创建的所有数据帧附加到列表中。 然后我使用 pd.concat函数合并数据帧列表 dfs 的每个元素之间的所有行。 然后我删除“空”列。 您可能希望使用 print p.head() 来仅显示前 5 个元素(默认参数为 5)或 p.tail() 来显示末尾,而不是 print p。 最后 p.to_csv 将所有合并的行导出到您想要的文件中。
关于python - Pandas 正确打印到屏幕,但仅将一些数据保存到 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32531058/