迭代pandas df的行以生成新的df(取决于条件)

时间:2018-02-21 21:31:14

标签: python pandas dataframe iteration conditional-statements

我有羽毛球得分的df。团队的每组游戏都在行上,列上每个点的得分如下:

0 0 1 1 2 3 4

0 1 2 3 3 4 4

我想在得分时只获得O和1,如下:(分析点中是否有任何模式):

0 0 1 0 1 1 1

0 1 1 1 0 1 0

我在考虑使用df.itertuples()和iloc以及条件将1属性设置为新数据帧,如果下一个得分=得分+ 1或0,如果下一个得分=得分+ 1

但是我不知道如何遍历生成的元组以及如何在好的位置生成带有0和1的新df。

希望很明白感谢您的帮助。 哦,那之后分析模式的任何建议?

1 个答案:

答案 0 :(得分:1)

您只需要diff(如果您需要将其转换回来,请尝试cumsum

df.diff(axis=1).fillna(0).astype(int)
Out[1382]: 
   1  2  3  4  5  6  7
0  0  0  1  0  1  1  1
1  0  1  1  1  0  1  0