我每天都有数据流入一个csv文件,该文件显示no。制造的零件。我想清楚地显示出每天生产的零件的百分比增长
我尝试过class FacebookSpider(scrapy.Spider):
.......
def __init__(self, *args, **kwargs):
if 'conc' in kwargs:
self.crawler.engine.downloader.total_concurrency = 32
,transpose()
,但无法解决此问题。
数据如下:
我想清楚地显示出每天生产的零件的百分比增长。输出应该是这样的:
我应该怎么做?
答案 0 :(得分:2)
您将需要s.pct_change()
和series.shift()
:
df.insert(1,'Day2',df.Day.shift(-1))
df['Percent_change']=(df.Peice_Produced.pct_change()*100).shift(-1).fillna(0).round(2)
print(df)
Day Day2 Peice_Produced Percent_change
0 1/1/17 1/2/17 10 -50.00
1 1/2/17 1/3/17 5 200.00
2 1/3/17 1/4/17 15 -60.00
3 1/4/17 1/5/17 6 250.00
4 1/5/17 1/6/17 21 -66.67
5 1/6/17 1/7/17 7 300.00
6 1/7/17 1/8/17 28 -71.43
7 1/8/17 1/9/17 8 350.00
8 1/9/17 1/10/17 36 -75.00
9 1/10/17 1/11/17 9 400.00
10 1/11/17 NaN 45 0.00
答案 1 :(得分:1)
我承认我不完全了解您的意图。不过,据我了解,我可能有解决方案。
使用diff()
函数查找离散差异
>>> df
Day Peice_Produced
0 1/1/17 10
1 1/2/17 5
2 1/3/17 15
3 1/4/17 6
4 1/5/17 21
5 1/6/17 7
6 1/7/17 28
7 1/8/17 8
8 1/9/17 36
9 1/10/17 9
10 1/11/17 45
>>> df['Day_over_day%'] = df.Peice_Produced.diff(periods=1).fillna(0).astype(str) + '%'
>>> df
Day Peice_Produced Day_over_day%
0 1/1/17 10 0.0%
1 1/2/17 5 -5.0%
2 1/3/17 15 10.0%
3 1/4/17 6 -9.0%
4 1/5/17 21 15.0%
5 1/6/17 7 -14.0%
6 1/7/17 28 21.0%
7 1/8/17 8 -20.0%
8 1/9/17 36 28.0%
9 1/10/17 9 -27.0%
10 1/11/17 45 36.0%
答案 2 :(得分:0)
您可以仅添加一个计算列。我假设您将这些数据存储在名为df
的pandas DataFrame中。您可以使用以下方法轻松做到这一点:
df['change'] = (df['Pieces Produced'] / df['Pieces Produced'].shift(1))-1