我有一个带有多索引(ID,日期,LID)的数据框以及从0到N的列,如下所示:
Data
我想按ID和Date对数据帧进行分组,并将列连接到同一行,使其看起来像这样:
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class scroll{
public static void main(String[] args) {
JFrame frame = new JFrame("Example");
frame.setSize(500, 500);
frame.setLayout(null);
JPanel panel = new JPanel();
panel.setBackground(Color.BLACK);
panel.setBounds(5, 5, 450, 600);
frame.add(panel);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
答案 0 :(得分:3)
pd.concat(
[df.xs(x, level=2) for x in df.index.levels[2]],
axis=1, ignore_index=True
)
0 1 2 3 4 5 6 7 8 9
ID Date
112 11-02-2014 0 1 5 6 7 2 4 5 3 4
30-07-2015 5 7 1 1 2 3 2 8 7 1
答案 1 :(得分:2)
使用unstack
+ sort_index
:
df = df.unstack().sort_index(axis=1, level=1)
#for new columns names
df.columns = np.arange(len(df.columns))
print (df)
0 1 2 3 4 5 6 7 8 9
ID Date
112 11-02-2014 0 1 5 6 7 2 4 5 3 4
30-07-2015 5 7 1 1 2 3 2 8 7 1