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