gpt4 book ai didi

python - 在数据框列中选择非重复值

转载 作者:行者123 更新时间:2023-11-28 20:56:02 24 4
gpt4 key购买 nike

我有以下数据框。

import pandas as pd
dates = pd.date_range('20130101', periods=10)
df = pd.DataFrame([1,1,1,-1,-1,-1,1,1,-1,1], index=dates, columns=list('A'))

df 的预期输出

df_out=pd.DataFrame([1,0,0,-1,0,0,1,0,-1,1], index=dates, columns=list('A'))

我想选择交替的 +1 和 -1,并在重复时替换为零。

df 可以是 10 列的大数据框,我希望在所有列上进行此转换。不使用 for 循环的有效方法是什么?请提出前进的方向。感谢期待。

最佳答案

IIUC 你可以使用 Series.diff连同 ne检查哪些第一个差异不是0,或者换句话说,哪些后续值不重复,并将那些False替换为0使用 DataFrame.where :

df.where(df.A.diff().ne(0), 0)

A
2013-01-01 1
2013-01-02 0
2013-01-03 0
2013-01-04 -1
2013-01-05 0
2013-01-06 0
2013-01-07 1
2013-01-08 0
2013-01-09 -1
2013-01-10 1

关于python - 在数据框列中选择非重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55299078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com