Python 重新构造数据帧
我有以下数据帧: 播放 位置 框架 x Y 1. A_1 1. 0.1 0.1 1. A_2 1. 0.1 0.1 1. B_1 1. 0.1 0.1 1. A_1 2. 0.1 0.1 1. A_2 2. 0.1 0.1 1. B_1 2. 0.1 0.1 2. A_1 1. 0.1 0.1 2. B_1 1. 0.1 0.1 2. B_2 1. 0.1 0.1 2. A_1 2. 0.1 0.1 2. B_1 2. 0.1 0.1 2. B_2 2. 0.1 0.1Python 重新构造数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据帧: 播放 位置 框架 x Y 1. A_1 1. 0.1 0.1 1. A_2 1. 0.1 0.1 1. B_1 1. 0.1 0.1 1. A_1 2. 0.1 0.1 1. A_2 2. 0.1 0.1 1. B_1 2. 0.1 0.1 2. A_1 1. 0.1 0.1 2. B_1 1. 0.1 0.1 2. B_2 1. 0.1 0.1 2. A_1 2. 0.1 0.1 2. B_1 2. 0.1 0.1 2. B_2 2. 0.1 0.1 sort_values
这样索引就按您想要的顺序排列了sort_values()
现有列设置索引()
coordssick()
- 说出一切
获取多索引列unstack()
让我们看看你试过什么。
df = pd.read_csv(io.StringIO("""play_id position frame x y
1 A_1 1 0.1 0.1
1 A_2 1 0.1 0.1
1 B_1 1 0.1 0.1
1 A_1 2 0.1 0.1
1 A_2 2 0.1 0.1
1 B_1 2 0.1 0.1
2 A_1 1 0.1 0.1
2 B_1 1 0.1 0.1
2 B_2 1 0.1 0.1
2 A_1 2 0.1 0.1
2 B_1 2 0.1 0.1
2 B_2 2 0.1 0.1"""), sep="\t")
df = df.sort_values(["position","frame","play_id"]).set_index(["position","frame","play_id"]).stack()
df.reindex(df.index.set_names(["position","frame","play_id","coord"])).unstack([0,1,3])
position A_1 A_2 B_1 B_2
frame 1 2 1 2 1 2 1 2
coord x y x y x y x y x y x y x y x y
play_id
1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 NaN NaN NaN NaN
2 0.1 0.1 0.1 0.1 NaN NaN NaN NaN 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1