我正在尝试操纵具有两列Type
和Value
的pandas DataFrame:
type value
-------------
1 100
2 1
3 1
4 1
1 300
2 1
3 1
4 1
1 500
2 1
3 1
4 700
我想创建一个新列,差异,它是从上一个值中减去该值的乘积,仅适用于类型==1。(所以300-100、500-300、700-500)< / p>
一种选择是将选定的天体适应新的df
new = df[df['type'].isin(['1'])]
进行减法,然后再次加入dfs。但是有没有一种更好的方法可以不必迁移到新的df?
答案 0 :(得分:0)
尝试:
return (
<CPContext.Consumer>
{context => (
<Paper className={classes.root}>
<Table className={classes.table}>
<TableHead>
<TableRow>
<CustomTableCell>id</CustomTableCell>
<CustomTableCell align="right">name</CustomTableCell>
</TableRow>
</TableHead>
<TableBody>
{Object.entries(context.data).map(v => (
<TableRow className={classes.row} >
<CustomTableCell component="th" scope="row">
{v[1].id}
</CustomTableCell>
<CustomTableCell align="right">{v[1].name}</CustomTableCell>
</TableRow>
))}
</TableBody>
</Table>
</Paper>
)}
</CoinContext.Consumer>
)
输出:
df['newcol'] = df.loc[df['type'] == 1, 'value'].diff()