3
我試圖根據列中的條件重複DataFrame中的行值。如果在列變化= 1的值,然後我想重複列中的值A,B,和C直至下一個變化= 1基於條件的熊貓DataFrame重複值
index = pandas.date_range('20000131', periods=5)
columns = ['A', 'B', 'C', 'Change']
data = {'A': pandas.Series([False, True, False, True, False], index=index)
, 'B': pandas.Series([True, True, False, False, False], index=index)
, 'C': pandas.Series([True, False, True, True, True], index=index)
, 'Change' : pandas.Series([1,0,0,1,0], index=index)}
結果:
A B C Change
2000-01-31 False True True 1
2000-02-01 True True False 0
2000-02-02 False False True 0
2000-02-03 True False True 1
2000-02-04 False False True 0
期望結果:
A B C Change
2000-01-31 False True True 1
2000-02-01 False True True 0
2000-02-02 False True True 0
2000-02-03 True False True 1
2000-02-04 True False True 0
這是最接近我已經能夠使用移()得到的,但它只能持續一排。我需要它堅持N行。在下面的例子中,它在第三行(或者第二行以0基數)分解。
print pandas.DataFrame(numpy.where(pandas.DataFrame(df['Change']==1)
, df, df.shift()))
結果:
0 1 2 3
0 False True True 1
1 False True True 1
2 False True False 0
3 True False True 1
4 True False True 1
謝謝。
感謝安迪!你已經回答了我在這裏搜索的大部分問題。填補作品完美。我其實更喜歡1和0。我感謝快速幫助。 – tkfbristol