当条件的计算结果为Tru时,获取数据帧的列标签

2024-04-25 18:57:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图复制DataFrame.idxmax()DataFrame.idxmin()的函数,但是我想使用一个自定义函数来求值,而不是min或max。你知道吗

例如,在数据帧D中:

+---+-----+-----+-----+
|   |  A  |  B  |  C  |
+---+-----+-----+-----+
| 0 | NaN | 100 | NaN |
+---+-----+-----+-----+
| 1 | 100 | NaN | NaN |
+---+-----+-----+-----+
| 2 | NaN | NaN | 200 |
+---+-----+-----+-----+

只有一列不包含整数。当数字等于100时,我想返回一个序列S(带有索引I):

+---+---+
| 0 | B |
+---+---+
| 1 | A |
+---+---+    

我本来希望D.apply(lambda x: x[x==100].index,1)能奏效,但实际上不行。有什么建议吗?你知道吗


Tags: 数据lambda函数dataframeindex序列数字整数
2条回答

怎么样:

df = pd.DataFrame({"A":[np.nan, np.nan, 100], "B":[np.nan, 100, np.nan], "C":[100, np.nan, np.nan]})
df.unstack().dropna()

或:

df[df==100].unstack().dropna()

如果您只需要索引:

df.unstack().dropna().reset_index().drop(0, axis=1)
In [66]: df[df==100].stack()
Out[66]: 
0  B    100
1  A    100
dtype: float64

相关问题 更多 >