簡體   English   中英

如何更有效地修改熊貓數據框列

[英]how to modify a pandas dataframe column more efficient

我有一個像這樣的熊貓數據框

>>> df['d']
date
2013-11-18    0
2013-11-19    0
2013-11-20    0
2013-11-21   -1
2013-11-22    0
2013-11-25    0
2013-11-26    0
2013-11-27    0
2013-11-29    0
2013-12-02    1
2013-12-03    0
2013-12-04    0
2013-12-05    0
2013-12-06    0
2013-12-09    0
2013-12-10    0
2013-12-11    0
2013-12-12    0
2013-12-13   -1
2013-12-16    0
2013-12-17    0
2013-12-18    0
2013-12-19    0
2013-12-20    0
2013-12-23    0
2013-12-24    0
2013-12-26    0
2013-12-27    0
2013-12-30    0
2013-12-31    1
2014-01-02    0
2014-01-03    0
2014-01-06    0
2014-01-07    0
2014-01-08   -1
Name: d, dtype: int64

我想將其更改為

>>> df['d']
date
2013-11-18    0
2013-11-19    0
2013-11-20    0
2013-11-21   -1
2013-11-22   -1
2013-11-25   -1
2013-11-26   -1
2013-11-27   -1
2013-11-29   -1
2013-12-02    1
2013-12-03    1
2013-12-04    1
2013-12-05    1
2013-12-06    1
2013-12-09    1
2013-12-10    1
2013-12-11    1
2013-12-12    1
2013-12-13   -1
2013-12-16   -1
2013-12-17   -1
2013-12-18   -1
2013-12-19   -1
2013-12-20   -1
2013-12-23   -1
2013-12-24   -1
2013-12-26   -1
2013-12-27   -1
2013-12-30   -1
2013-12-31    1
2014-01-02    1
2014-01-03    1
2014-01-06    1
2014-01-07    1
2014-01-08   -1
Name: d, dtype: int64

到目前為止,我已使用此代碼進行更改

>>> for i in range(len(df)):
...     if i != 0 and df['d'][i] ==0:
...             df['d'][i] = df['d'][i-1]
...

代碼效率不高,有沒有更有效的方法? 我認為必須有一些特殊的函數(例如apply,roll_apply)來遍歷這些值,但是我無法弄清楚。 任何幫助,將不勝感激。

只需您即可做到

df['d'].replace(0 , method = 'ffill')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM