Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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 如果数据帧中的所有列相等,则设置值_Python_Pandas - Fatal编程技术网

Python 如果数据帧中的所有列相等,则设置值

Python 如果数据帧中的所有列相等,则设置值,python,pandas,Python,Pandas,我有一个数据框,我是这样读的: df = pd.read_csv(myfile, delimiter=";") df = df.set_index('date') print(df) NET_0 NET_1 NET_2 NET_3 NET_4 NET_5 NET_6 NET_7 NET_8 NET_9 NET_10 NET_11 NET_12 NET_13 NET_14 NET_15 NET_16 NET_17 NET_18 NET_19

我有一个数据框,我是这样读的:

df = pd.read_csv(myfile, delimiter=";")
df = df.set_index('date')
print(df)


      NET_0  NET_1  NET_2  NET_3  NET_4  NET_5  NET_6  NET_7  NET_8  NET_9  NET_10  NET_11  NET_12  NET_13  NET_14  NET_15  NET_16  NET_17  NET_18  NET_19  NET_20  NET_21  NET_22  NET_23  NET_24  NET_25
date                                                                                                                                                                                                            
2009-08-02      0      0      0      1      1      1      0      1      1      0       0       1       0       0       1       0       0       0       0       0       1       0       1       1       1       1
2009-08-03      0      0      0      1      1      1      0      0      1      0       1       1       0       0       1       1       0       0       0       0       1       0       1       1       1       1
2009-08-04      0      0      0      1      1      1      0      1      1      0       0       1       0       0       1       0       0       0       0       0       1       0       1       1       1       1
2009-08-05      0      0      0      1      1      1      0      1      1      0       1       1       0       0       1       0       0       0       0       0       1       0       1       1       1       1
2009-08-06      0      0      0      0      0      0      0      0      0      0       0       0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      
2009-08-07      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1
我想要这个结果:如果一行中的所有净列都等于一个,我想要
1
作为结果,如果一行中的所有列都等于0
-1
否则
0
。比如:

date    enseamble
2009-08-02     0
2009-08-03     0
2009-08-04     0
2009-08-05     0
2009-08-06     -1
2009-08-07     1
有没有没有一条快速的路? 谢谢,我想
all()
函数会适合您的。(尤其是因为您的数据似乎是布尔形式的。)

这将评估整个数据帧并返回True或False

试试看:


使用
np.select()
传递每个条件的条件列表和选择列表(请参阅提供的链接中的文档)


回答得很好。你能写一些注释来解释代码是如何工作的吗?我会标记为正确answer@AsoStrife完成。。!!如果你需要了解的话,请告诉我:)今天我问了一个非常类似的问题:你能查一下吗?
df.all(axis=None)
m1=df.eq(1).all(axis=1) #check if all column in each row is 1
m2=df.eq(0).all(axis=1) ##check if all column in each row is 0
df['enseamble']=np.select([m1,m2],[1,-1],0) #using np.select expaination in docs
#to drop the remaining columns f, find difference between enseamble and other columns like below and call under axis=1:
m=df.drop(df.columns.difference(['enseamble']),axis=1) 
print(m)

                     enseamble
date                         0
2009-08-02 00:00:00          0
2009-08-03 00:00:00          0
2009-08-04 00:00:00          0
2009-08-05 00:00:00          0
2009-08-06 00:00:00         -1
2009-08-07 00:00:00          1