熊猫:浓缩调查结果

时间:2018-03-04 17:44:50

标签: python pandas

我的调查结果有以下格式:

render

我想将我的数据帧转换为以下内容:

def destroy
  @proofread_document.destroy
  respond_to do |format|
    format.js {render layout: false}
  end
end

实现这一目标的最有效方法是什么? 通过...分组?枢?

用'True'替换'Yes'的每个实例并使用布尔测试是否有任何好处?

提前致谢。接下来是DataFrame代码,以便于回答。

   Lab Shepherd Poodle Frisky Sleepy Hungry
0  NaN      NaN    Yes    Yes    NaN    NaN
1  Yes      NaN    NaN    NaN    NaN    Yes
2  NaN      Yes    NaN    NaN    Yes    NaN

2 个答案:

答案 0 :(得分:2)

您可以按stack重新塑造,并DataFrame使用groupbylist构造函数创建新的DataFrame

a = df.stack().reset_index().groupby('level_0')['level_1'].apply(list)
df = pd.DataFrame(a.values.tolist())

另一种解决方案是转换为bool - 空格为False s,对于每一行创建列表,最后也使用DataFrame构造函数:

a = df.astype(bool).apply(lambda x: x.index[x].values.tolist(), axis=1)
df = pd.DataFrame(a.values.tolist())
df = df.astype(bool).apply(lambda x: pd.Series(x.index[x].values), axis=1)
print (df)
          0       1
0    Poodle  Frisky
1       Lab  Hungry
2  Shepherd  Sleepy

答案 1 :(得分:1)

还有另一个

{'a':[1,2,3]}