我有一个看起来像这样的df
group sample total +A +G +GG -A -G -GG A C G N T
group1 A 698 0 22 1 1 0 0 696 0 0 0 0
group1 B 707 1 0 0 0 11 1 1 1 693 0 0
group2 A 814 0 225 7 0 0 0 804 2 7 0 1
group2 B 826 0 0 0 0 11 0 0 0 815 0 0
我想将其转换/转换为带有下面标题的df
_df = df.groupby(['group', 'base']).size().unstack(fill_value=0).reset_index().rename_axis(None, axis=1)
到目前为止,采用此处显示的代码pandas row values to column headers
使用代码:
_df
group +A +G +GG -A -G -GG A C G N T
0 group1 1 1 1 1 1 1 2 2 2 2 2
1 group2 0 1 1 0 1 0 2 2 2 2 2
输出
T(n) = 2 * T(n-1) + 1 * O(1)
= 4 * T(n-2) + 3 * O(1)
= 8 * T(n-3) + 7 * O(1)
= 2^k * T(n-k) + ((2^k)-1) * O(1)
我不确定pandas有什么内置命令可以从原始数据框中获取数字,而不是0,1我也错过了总列。
答案 0 :(得分:3)
像这样使用数据透视表
render() {
const {
activeClass,
containerClass,
exactLink,
hoverClass,
icon,
label,
link,
onClick,
handleActive,
} = this.props
let message = (
<div className='Button--message'>
<div className='Button--messageText'>{label}</div>
</div>
)
if (icon) {
message = (
<div className='Button--message'>
<div className='Button--messageIcon'><Icon name={icon} / ></div>
<div className='Button--messageText'>{label}</div>
</div>
)
}
const buttonContainerClass = this.isHovering() ? `${containerClass} ${hoverClass}` : containerClass
const ButtonContainer = props => (
<button
{...props}
className={this.props.buttonClass || ''}
onMouseEnter={() => this.handleMouseIn()}
onMouseLeave={() => this.handleMouseOut()}
>
{message}
</button>
)
let Result
if (typeof(link) === 'string') {
if (typeof(activeClass) === 'string' && activeClass.length > 0) {
const opts = {
activeClassName: activeClass || '',
className: buttonContainerClass || '',
exact: exactLink || false,
isActive: handleActive || undefined,
strict: true,
to: link,
}
Result = (
<NavLink {...opts} >
<ButtonContainer />
</NavLink>
)
} else {
Result = (
<Link to={link} className={buttonContainerClass}>
<ButtonContainer />
</Link>
)
}
} else if (typeof(onClick) === 'function') {
Result = (
<div className={buttonContainerClass}>
<ButtonContainer onClick={() => onClick()} />
</div>
)
} else {
console.warn('Button must have an action props> ', {props: this.props})
}
return Result
}
输出:
base +A +G +GG -A -G -GG A C G N \ group sample total group1 A 698 0.0 22.0 1.0 1.0 0.0 0.0 696.0 0.0 1.0 0.0 707 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 B 707 1.0 0.0 0.0 0.0 11.0 1.0 0.0 1.0 693.0 0.0 group2 A 814 0.0 225.0 7.0 0.0 0.0 0.0 804.0 2.0 7.0 0.0 B 826 0.0 0.0 0.0 0.0 11.0 0.0 0.0 0.0 815.0 0.0 base T group sample total group1 A 698 0.0 707 0.0 B 707 0.0 group2 A 814 1.0 B 826 0.0
答案 1 :(得分:1)
pd.pivot_table(_df, columns=['base'], values=['size'],index='index_name').fillna(0)