我该如何解决熊猫问题?

时间:2019-02-08 22:48:53

标签: python pandas

我每天都有数据流入一个csv文件,该文件显示no。制造的零件。我想清楚地显示出每天生产的零件的百分比增长

我尝试过class FacebookSpider(scrapy.Spider): ....... def __init__(self, *args, **kwargs): if 'conc' in kwargs: self.crawler.engine.downloader.total_concurrency = 32 transpose(),但无法解决此问题。

数据如下:

enter image description here

我想清楚地显示出每天生产的零件的百分比增长。输出应该是这样的:

enter image description here

我应该怎么做?

3 个答案:

答案 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