首页 > 解决方案 > 从 Python DataFrame 的行/列数据中生成对

问题描述

我想像 python 的数据框一样从下面进行配对我想做的是与行和列配对,例如:(1,a),(4,c),(6,c),(3,d) , (2,f), (4,f), (6,f), (6,g)

有没有办法做到这一点。提前致谢。

例子

标签: pythonpandasdataframe

解决方案


数据

     a   b   c    d   e    f   g
1  1.0 NaN NaN  NaN NaN  NaN NaN
2  NaN NaN NaN  NaN NaN  1.0 NaN
3  NaN NaN NaN  1.0 NaN  NaN NaN
4  NaN NaN NaN  1.0 NaN  1.0 NaN

选项 1:您可以使用np.where

rows, cols = np.where(df.eq(1))
[*zip(df.index[rows], df.columns[cols])]

输出:

[(1, 'a'), (2, 'f'), (3, 'd'), (4, 'd'), (4, 'f')]

选项 2

df.stack().index.values

输出:

array([(1, 'a'), (2, 'f'), (3, 'd'), (4, 'd'), (4, 'f')], dtype=object)

推荐阅读