将更长的 np 数组放入更短但更宽的熊猫数据框中

Fit a longer np array into a shorter but wider panda dataframe

我有一个数据框“p”和一个 np 数组“b”,如下所示

p=pd.DataFrame([["j","k","h"],[4,5,6],[7,8,9]])

j k h
4 5 6
7 8 9


b=np.array([["a",10],["b",20],["c",30],["d",40]])

a 10
b 20
c 30
d 40

我想将 np 数组插入到数据框中并变成如下所示

j  k   h
a  10  10 
b  20  20
c  30  30
d  40  40

注意p比b宽,b比p长

基本上:

  1. 保留p的第一行
  2. 从第二行将 b 插入 p 中
  3. 将 b 的第二列重复到 p 的其余列

IIUC,你可以使用:

pd.concat([p.iloc[[0]],
           pd.DataFrame(np.hstack([b, b[:,[1]]]), columns=p.columns)],
          ignore_index=True)

输出:

   0   1   2
0  j   k   h
1  a  10  10
2  b  20  20
3  c  30  30
4  d  40  40