Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果值为1,则更改整行的PandasDF值_Python_Pandas - Fatal编程技术网

Python 如果值为1,则更改整行的PandasDF值

Python 如果值为1,则更改整行的PandasDF值,python,pandas,Python,Pandas,我有一个(非常)大的pd.DataFrame,它包含真/假或1/0,如果工作结果需要,我可以更改它 如果一行中的值是1,我希望该行的其余部分都用1填充 输入如下所示: Index Day1 Day2 Day3 Day4 1 0 1 0 0 2 1 1 0 0 3 0 0 0 0 Index Day1 Day2 Day3

我有一个(非常)大的pd.DataFrame,它包含真/假或1/0,如果工作结果需要,我可以更改它

如果一行中的值是1,我希望该行的其余部分都用1填充

输入如下所示:

Index    Day1   Day2   Day3   Day4
  1       0      1      0      0
  2       1      1      0      0
  3       0      0      0      0 
Index    Day1   Day2   Day3   Day4
  1       0      1      1      1
  2       1      1      1      1
  3       0      0      0      0 
我期望的目标是如下所示:

Index    Day1   Day2   Day3   Day4
  1       0      1      0      0
  2       1      1      0      0
  3       0      0      0      0 
Index    Day1   Day2   Day3   Day4
  1       0      1      1      1
  2       1      1      1      1
  3       0      0      0      0 
可以迭代所有行并“手动”更改值,但我想知道是否有更好的解决方案


谢谢大家!

假设列的数量相当小,我将迭代这些列:

for col in reversed(df.columns[1:-1]):
    df.loc[df[col]==1, col:] = 1
正如预期的那样:

   Index  Day1  Day2  Day3  Day4
0      1     0     1     1     1
1      2     1     1     1     1
2      3     0     0     0     0
使用,如果大于,则进行比较,如
0
,并通过以下方式将掩码转换为
0,1
值:


使用Dataframe.transform()方法。检查行中的成员资格并替换

df.transform(lambda row: [1]*4 if 1 in row.values else row, axis=1)

谢谢你的回答,但我使用了耶斯雷尔的解决方案。谢谢你的回答,我有大量的专栏,因此耶斯雷尔的答案更容易为我申请。