Python 查找表中只有一个非零值的列
首先让我指出,这个问题非常接近于为pandas dataframe中的每一列获取非零值,但是除了获取值之外,我还想知道它是从哪一行绘制的。(最终,我希望能够重新使用代码来查找非零值出现x次的列。) 我拥有的是一个数据框架,其中包含给定年份文档的字数:Python 查找表中只有一个非零值的列,python,pandas,Python,Pandas,首先让我指出,这个问题非常接近于为pandas dataframe中的每一列获取非零值,但是除了获取值之外,我还想知道它是从哪一行绘制的。(最终,我希望能够重新使用代码来查找非零值出现x次的列。) 我拥有的是一个数据框架,其中包含给定年份文档的字数: |Year / Term | word1 | word2 | word3 | ... | wordn | |------------|-------|-------|-------|-----|-------| | 2001 | 23
|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行,但它有很多很多列。如果这个问题已经有了答案,暴露了我搜索引擎的弱点,我会把嘲笑当作我应得的。在你的情况下
melt
然后groupby
df.melt('Year / Term').loc[lambda x : x['value']!=0].groupby('variable')['value'].apply(tupl)
在您的情况下,
melt
然后groupby
df.melt('Year / Term').loc[lambda x : x['value']!=0].groupby('variable')['value'].apply(tupl)
我以前从未遇到过
melt
。我将尝试它,并检查这个回答,如果这是有效的,谢谢你!我以前从未遇到过melt
。我将尝试它,并检查这个回答,如果这是有效的,谢谢你!