创建具有不同大小的数据框的数据框

时间:2019-04-02 13:12:14

标签: python pandas numpy

我有一个数据框和两个大小不同的数组,我想创建一个数据框

例如

import pandas
import numpy

 df = pandas.DataFrame(numpy.array([[0,0,1]]),columns = ['A', 'B', 'C'])
  V1=numpy.array([0,1,3,4])
  V2=numpy.array([2,3,5,8,11,12])

我想获得一个像这样的单个数据框:

  A  B  C V1 V2
  0  0  1 0   2
  0  0  1 1   3
  0  0  1 3   5
  0  0  1 4   8   
  0  0  1 Nan 11
  0  0  1 Nan 12

1 个答案:

答案 0 :(得分:1)

首先需要在第一个DataFrame中以最大数组长度重复数组,然后为每个数组Series创建并通过concat连接在一起:

a = [V1, V2]
n = max(map(len, a))
df1 = pd.DataFrame(np.array(np.repeat([[0,0,1]], n, axis=0)), columns = ['A', 'B', 'C'])
df = pd.concat([df1, pd.Series(V1, name='V1'), pd.Series(V2, name='V2')], axis=1)
print (df)
   A  B  C   V1  V2
0  0  0  1  0.0   2
1  0  0  1  1.0   3
2  0  0  1  3.0   5
3  0  0  1  4.0   8
4  0  0  1  NaN  11
5  0  0  1  NaN  12