python - Pandas 中的条件行和
问题描述
我有一个从 计算的相关矩阵df.corr()
。我正在尝试为该矩阵的每一行获取一个行和,分别具有正值和负值。相关矩阵的一行如下所示:
A B C
A 1.00 -0.044 -0.8
预期输出:
Variable PositiveCorr NegativeCorr
A 1.00 -0.844
如何在 Pandas 中实现这一点?
解决方案
DataFrame.clip
与 一起使用sum
:
df['PositiveCorr'] = df.clip(lower=0).sum(axis=1)
df['NegativeCorr'] = df.clip(upper=0).sum(axis=1)
df1 = df[['PositiveCorr','NegativeCorr']].rename_axis('Variable').reset_index()
为避免将新列附加到 original DataFrame
,请使用:
df1 = (df.index
.to_frame(name='Variable')
.assign(PositiveCorr=df.clip(lower=0).sum(axis=1),
NegativeCorr= df.clip(upper=0).sum(axis=1)))
print (df1)
Variable PositiveCorr NegativeCorr
A A 1.0 -0.844
推荐阅读
- sql-server - 尽管数据很小,但字符串列的 Power BI 字典大小都超过 1mb
- ios - 设备定向后子视图的中心
- r - R 在安装 gert 时因“捕获非法操作”而崩溃
- python - Matplotlib 图 '.supxlabel' 不起作用
- python - 如何正确填写表格
- android - 使用 Flip_card 颤动单击按钮时翻转所有卡片
- ios - Crashlytics 想要我不再拥有的 dSym 文件
- php - Laravel 8 - 不能同时使用 Api 和 Web Route
- c++ - 为什么在while循环中有或没有sleep/usleep的情况下,花费在相同函数/方法调用上的时间差别很大?
- java - 如何把一个方法我@beforeTest