Python 如何从dataframe中查找特定值的列名

Python 如何从dataframe中查找特定值的列名,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,等等 我有数据帧 output A :5/10/20 B :5/10/20 C :5/18/20 D :5/12/20 如果有多个匹配项,或者每行没有匹配项,请使用where+堆栈其中将NaN任何不等于您的值的内容,然后堆栈为您提供一个多索引(行标签、列标签),并删除所有NaN state 5/10/20 5/11/20 5/12/20 5/13/20 5/14/20 5/15/20 5/16/20 5/17/20 5/18/20 A 1000 5000

等等

我有数据帧

output
A :5/10/20
B :5/10/20
C :5/18/20
D :5/12/20

如果有多个匹配项,或者每行没有匹配项,请使用
where
+
堆栈
其中
NaN
任何不等于您的值的内容,然后
堆栈
为您提供一个多索引(行标签、列标签),并删除所有
NaN

state  5/10/20  5/11/20  5/12/20   5/13/20  5/14/20  5/15/20  5/16/20  5/17/20  5/18/20

A      1000     5000     4522      5200     3300     1200     5200     6933     5200

B      1000     5500     1002      9200     3350     1800     5266     6301     9600

C      1200     5599     1500      2000     3011     1963     3011     6300     1000

D      1088     5500     1000      9200     3350     1800     5266     6301     9600

E      1011     3300     1080      5230     9633     2222     6330     9622     1400


感谢您为我完成这项工作,是否可以在同一数据帧中的两个值之间进行搜索。@user10961148是而不是
.eq
您可以执行
df.where(df.ge(XX)&df.le(YY)).stack()。分别代表小于或等于和大于或等于。
state  5/10/20  5/11/20  5/12/20   5/13/20  5/14/20  5/15/20  5/16/20  5/17/20  5/18/20

A      1000     5000     4522      5200     3300     1200     5200     6933     5200

B      1000     5500     1002      9200     3350     1800     5266     6301     9600

C      1200     5599     1500      2000     3011     1963     3011     6300     1000

D      1088     5500     1000      9200     3350     1800     5266     6301     9600

E      1011     3300     1080      5230     9633     2222     6330     9622     1400
value = 1000

df = df.set_index('state')
df.where(df.eq(value)).stack()
state         
A      5/10/20    1000.0
B      5/10/20    1000.0
C      5/18/20    1000.0
D      5/12/20    1000.0
dtype: float64