让我首先指出,这个问题非常接近this question,有关为熊猫数据框中的每一列获取非零值,但除了获取值之外,我还想知道该行从中提取。 (并且,最终,我希望能够重新使用代码来查找在x倍的时间内出现非零值的列。)
我拥有的是一个数据框架,其中包含给定年份文档的单词数:
|Year / Term | word1 | word2 | word3 | ... | wordn |
|------------|-------|-------|-------|-----|-------|
| 2001 | 23 | 0 | 0 | | 0 |
| 2002 | 0 | 0 | 12 | | 0 |
| 2003 | 0 | 42 | 34 | | 0 |
| year(n) | 0 | 0 | 0 | | 45 |
因此对于word1
,我想同时获得23和2001 -这可以是元组或字典。 (只要我可以处理数据就没有关系。)最终,我非常希望能够发现word3
的使用期限为两年。
FTR,数据框只有16行,但有很多列。如果已经有这个问题的答案,表明我的搜索功能很弱,我将把嘲笑当成应有的理由。
答案 0 :(得分:2)
如果是melt
,然后是groupby
df.melt('Year / Term').loc[lambda x : x['value']!=0].groupby('variable')['value'].apply(tupl)