如何在数据框中将索引和列命名为相同时选择标签?

时间:2016-06-29 02:46:38

标签: python pandas dataframe

我有一个pandas数据框,我需要找出特定行的非零元素列的标签。

例如:

columns = ['a', 'b', 'c']
df = pd.DataFrame([[1, 0, 1], [0, 1, 0], [3, 5, 2]], index=columns, columns=columns)

对于列a,我希望返回['a', 'c']

1 个答案:

答案 0 :(得分:0)

这看起来像你想要的东西吗?

df.index[(df != 0)['a']]
# Index([u'a', u'c'], dtype='object')

df.index[(df != 0)['b']]
# Index([u'b', u'c'], dtype='object')

df.index[(df != 0)['c']]
# Index([u'a', u'c'], dtype='object')

要遍历列并构建字典,我们可以这样做:

map(lambda col: {col: df.index[(df != 0)[col]].values}, df.columns)
# [{'a': array(['a', 'c'], dtype=object)},
#  {'b': array(['b', 'c'], dtype=object)},
#  {'c': array(['a', 'c'], dtype=object)}]