为了账号安全,请及时绑定邮箱和手机立即绑定

我怎样才能在熊猫中解决这个问题?

我怎样才能在熊猫中解决这个问题?

慕雪6442864 2021-11-02 20:26:58
我每天都有数据流入一个 csv 文件,该文件显示没有。正在制造的件数。我想清楚地显示每天生产的件数增加百分比我已经尝试过transpose(),unstack()但一直无法解决这个问题。下面是数据的样子:我想清楚地显示每天生产的件数增加百分比。输出应该是这样的:我应该如何完成这项工作?
查看完整描述

3 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

你需要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


查看完整回答
反对 回复 2021-11-02
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

我承认我不完全明白你的意图是什么。尽管如此,我可能有我理解的解决方案..


使用diff()函数查找离散差异


您的模拟 DataFarme:

>>> 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%


查看完整回答
反对 回复 2021-11-02
?
HUX布斯

TA贡献1876条经验 获得超6个赞

您可以只添加一个计算列。我假设您将此数据存储在名为df. 你可以简单地做到这一点:

 df['change'] = (df['Pieces Produced'] / df['Pieces Produced'].shift(1))-1


查看完整回答
反对 回复 2021-11-02
  • 3 回答
  • 0 关注
  • 262 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号