我没有来用另一个列的数据填充交叉表:也许这不是解决方案...
App.js
我的代码可为您提供帮助:
import React, { Component } from "react";
import logo from "./logo.svg";
import "./App.css";
import { getRecords } from "./utils/dbtools.js";
const results = getRecords();
class App extends Component {
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
}
export default App;
答案 0 :(得分:1)
如果您的原始df
是这个
id id_m X
0 10 10 a
1 10 11 b
2 10 12 c
3 11 10 d
4 11 11 e
5 11 12 f
6 12 10 g
7 12 11 h
8 12 12 i
你想要的就是这个
id_m 10 11 12
id
10 a b c
11 d e f
12 g h i
您可以groupby
和id
列,取id_m
列的max
,然后X
{{1 }}列。
unstack
如果您真的想使用id_m
,也可以这样做
df.groupby([
'id',
'id_m'
]).X.max().unstack()
相同的结果。
最后,由于行在索引和列方面是唯一的,因此只能使用pivot_table
。
df.pivot_table(index='id', columns='id_m', values='X', aggfunc='max')
参考
答案 1 :(得分:1)
由于您的文字为values
,因此您的操作更加棘手,必须明确告诉熊猫aggfunc
,您可以使用lambda
函数,如下所示:< / p>
df_final = pd.pivot_table(df_m, index='id', columns='id_m', values='X', aggfunc=lambda x: ' '.join(x) )
id_m 10 11 12
id
10 a b c
11 d e f
12 g h i