我在终端中有数据帧作为输出。 看起来像
2008Q1 503836
2008Q2 485872
2008Q3 686549
2008Q4 777268
2009Q1 1006589
2009Q2 849238
2009Q3 906675
2009Q4 973586
2010Q1 1090196
2010Q2 1029980
2010Q3 997876
2010Q4 1044607
2011Q1 1309266
2011Q2 1228180
2011Q3 1234710
2011Q4 1049315
2012Q1 716983
2012Q2 956271
2012Q3 788875
2012Q4 712312
2013Q1 658456
2013Q2 898281
2013Q3 822454
2013Q4 781709
2014Q1 854939
2014Q2 785794
2014Q3 724475
2014Q4 663736
2015Q1 746625
2015Q2 688598
2015Q3 633296
2015Q4 578003
2016Q1 603079
2016Q2 550575
2016Q3 482792
2016Q4 454369
2017Q1 490807
2017Q2 454263
程序运行时间很长,我忘了在代码末尾添加绘图命令。之后是否有办法绘制数据框?还是可以保存数据框然后绘制?
答案 0 :(得分:0)
因此,如果创建此DataFrame确实很漫长,我建议通过DataFrame.to_csv
或DataFrame.to_pickle
将DataFrame
保存到csv或pickle中。
然后在第二步中通过read_csv
或read_pickle
创建DataFrame并进行处理-绘图或类似操作。
与previous answer一起使用:
out = []
for i in result:
#use parameter usecols for filter only necessary column(s)
df = pd.read_csv("crisisuser/"+i, usecols=['time'])
out.append(df)
列表理解的替代方法:
out = [pd.read_csv("crisisuser/"+i, usecols=['time']) for i in result]
然后将它们连接在一起,并在必要时写入文件:
df = pd.concat(out, ignore_index=True)
df.to_csv('big_file.csv', ignore_index=True)
通过文件创建DataFrame并进行处理:
df1 = pd.read_csv('big_file.csv')
df['quarter'] = pd.PeriodIndex(df.time, freq='Q')
s = df['quarter'].value_counts().sort_index()
s.plot()
答案 1 :(得分:0)