【发布时间】:2018-11-05 11:15:45
【问题描述】:
在将多个 csv 文件 (500) 合并为一个 csv 文件时遇到问题。运行应用程序时,它会根据需要创建一个 csv 文件,但只有一个代码。似乎它不会遍历所有存储的 csv 文件。 这就是输出的样子:CSV output
for count, ticker in enumerate(tickers):
df = pd.read_csv('stock_dfs/{}.csv'.format(ticker))
df.set_index('Date', inplace=True)
df.rename(columns={'Adj Close': ticker}, inplace=True)
df.drop(['Open', 'High', 'Low', 'Close', 'Volume'], 1, inplace=True)
main_df = pd.DataFrame()
df = df.reset_index()
df = df.melt(id_vars=['Date'], var_name='Ticker', value_name='Closed')
main_df = main_df.append(df)
print(main_df.head())
main_df.to_csv('sp500_joined_closes.csv')
编译数据()
【问题讨论】:
-
我不确定你想通过
if/else那里的逻辑来实现什么 - 你有一个main_df = pd.DataFrame()你应该附加到的地方......你不能只是建立一个大的数据框,然后将其写入输出? -
您在 for 循环中为每个代码修改
main_df(删除任何以前的值),但将其导出到 for 循环之外。因此,仅导出最终代码。 -
应该:main_df = pd.DataFrame() df = df.reset_index() df = df.melt(id_vars=['Date'], var_name='Ticker', value_name='Closed' ) main_df = main_df.append(df) print(main_df.head()) main_df.to_csv('sp500_joined_closes.csv') 是否包含在 for 循环中? @asongtoruin
-
嘿 JonClements,我像 @Charles R 提议的那样更改了它,但仍然只生成一个代码。
标签: python pandas dataframe web-scraping concatenation