假設我有以下pandas
數據框:如何在Pandas中將當前行項目設置爲更小(如果更小)?
table = [[datetime.datetime(2015, 1, 31), 1, 0.5],
[datetime.datetime(2015, 2, 27), 1, 2],
[datetime.datetime(2015, 3, 31), 1, 1.5],
[datetime.datetime(2015, 4, 30), 1, 0],
[datetime.datetime(2015, 5, 31), 1, 2],
[datetime.datetime(2015, 6, 30), 1, 1.2],
[datetime.datetime(2015, 7, 31), 1, 3],
[datetime.datetime(2015, 8, 31), 1, 0]]
df = pd.DataFrame(table, columns=['Date', 'Id', 'Value'])
Date Id Value
0 2015-01-31 1 0.5
1 2015-02-27 1 2.0
2 2015-03-31 1 1.5
3 2015-04-30 1 0.0
4 2015-05-31 1 2.0
5 2015-06-30 1 1.2
6 2015-07-31 1 3.0
7 2015-08-31 1 0.0
我希望通過df
一個簡單的方法來循環和Value
當前元素設置爲先前的,如果是小於或等於,如果添加一個布爾元素已被更改爲前一個。但是,我對如何這樣做感到茫然。由此產生的數據框將是:
Date Id Value Altered
0 2015-01-31 1 0.5 False
1 2015-02-27 1 2.0 False
2 2015-03-31 1 2.0 True
3 2015-04-30 1 2.0 True
4 2015-05-31 1 2.0 True
5 2015-06-30 1 2.0 True
6 2015-07-31 1 3.0 False
7 2015-08-31 1 3.0 True
好奇的問題,爲什麼第4行不同於預期的結果? – deinonychusaur
@deinonychusaur:索引4處的值在累積最大值欄中保持爲2.0:未更改。 (也許這是OP預期輸出中的拼寫錯誤。) –
我認爲定義等於與文本中的OP表達式相同,如果這是相關的,則使其有點棘手。 – deinonychusaur